Java 输入流与读取器
我正在浏览输入输出部分,有太多的类和接口,我有点困惑。Java 输入流与读取器,java,inputstream,streamreader,java-io,Java,Inputstream,Streamreader,Java Io,我正在浏览输入输出部分,有太多的类和接口,我有点困惑。 正如文档所述,InputStream是基于字节的流,而Reader是基于字符的流。但正如我正确理解的那样,Reader每次读取两个字节,而不是像InputStream那样每次读取一个字节 因此我不明白有什么区别: 使用输入流 byte[] bytes = new byte[2]; InputStream in = new FileInputStream("input.txt"); int bytesRead = in.re
正如文档所述,
InputStream
是基于字节的流,而Reader
是基于字符的流。但正如我正确理解的那样,Reader
每次读取两个字节,而不是像InputStream
那样每次读取一个字节因此我不明白有什么区别:
使用
输入流
byte[] bytes = new byte[2];
InputStream in = new FileInputStream("input.txt");
int bytesRead = in.read(bytes);
while(bytesRead != -1) {
doSomethingWithData(data);
bytesRead = inputstream.read(data);
}
使用读卡器
Reader reader = new InputStreamReader(new FileInputStream("input.txt"));
int data = reader.read();
while (data != -1) {
doSomethingWithData(data);
data = reader.read();
}
我真的对这些方面感到困惑。请详细解释。谢谢。您可以使用
阅读器来读取文本数据。它支持一些字符编码,比如-ISO,UTF-8。如果您想读取带有某种编码的文本文件,则可以使用Reader
s,如-BufferedReader
,StringReader
等
您可以使用Stream(InputStream,OutputStream)
来操作二进制数据。例如,如果要读取图像文件,则可以使用FileInputStream
;如果要将其保存到磁盘,则可以使用FileOutputStream
根据字符集的不同,字符可以是1或2个(甚至更多)字节。