我的目標是bytes從 a中讀取 n 個Socket。
直接從 中讀取InputStream,還是將其包裝到中更好BufferedReader?
在整個網路中,您都可以找到這兩種方法,但沒有說明何時使用哪種方法。
Socket socket;
is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
char[] buffer = new char[CONTENT_LENGTH];
//what is better?
is.read(buffer);
br.read(buffer);
uj5u.com熱心網友回復:
由于您的目標是“讀取 n 個位元組”,因此從您的輸入創建字符幾乎沒有意義Reader,因為這可能意味著第 n 個位元組是字符的一部分 - 并假設流是基于字符的。
由于 JDK11 有讀取 n 個位元組的方便呼叫:
byte[] input = is.readNBytes(n);
如果 n 很小并且您經常重復上述操作,請考慮使用其中之一讀取流bis = new BufferedInputStream(is),in.transferTo(out)或者len = read(byteArray)對于較長的流可能更有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441953.html
