Java-Sockets:InputStream.read()vs BufferedReader.read()

Atm*_*ons 4 java sockets inputstream buffering streamreader

我正在阅读Socket的InputStream.因为我正在动态解析传入的数据,所以我需要逐个字符地阅读.

BufferedReader.read()同样的事情InputStream.read()吗?(假设BufferedReader是以InputStream为基础构造的)

在单独读取每个字符时使用InputStream.read()更有效吗?还是有更好的方法吗?

Bri*_*new 5

BufferedReader将从基础Reader读取多个字符.InputStream提供字节.所以他们正在研究2种不同的数据类型.你是如何围绕流包装读者的?想必你会这样:

 BufferedReader in
   = new BufferedReader(new InputStreamReader(socket));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我要小心指定你的字符编码.

从优化的角度来看,最好使用BufferedReader,因为它一次读取几千字节,你可以在需要时获取每个字符(不一定强制执行新的IO读取).