This question already has an answer here:
java reader vs. stream
(1个答案)
4年前关闭。
我要遍历输入输出部分,并且有太多的类和接口让我有些困惑。
正如文档所述,
因此我不知道有什么区别:
使用
使用
我真的对这些方面感到困惑。请详细说明。谢谢。
(1个答案)
4年前关闭。
我要遍历输入输出部分,并且有太多的类和接口让我有些困惑。
正如文档所述,
InputStream
是基于字节的流,而Reader
是基于字符的流。但据我正确理解,它们之间的唯一区别是Reader
每次读取两个字节,而不是像InputStream
那样一次读取一个字节。因此我不知道有什么区别:
使用
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 reader = new InputStreamReader(new FileInputStream("input.txt"));
int data = reader.read();
while (data != -1) {
doSomethingWithData(data);
data = reader.read();
}
我真的对这些方面感到困惑。请详细说明。谢谢。
最佳答案
您可以使用Reader
读取文本数据。而且它支持某些字符编码,例如-ISO,UTF-8。如果要读取具有某种编码的文本文件,则可以使用Reader
,例如-BufferedReader
,StringReader
等。
您可以使用Stream (InputStream, OutputStream)
来处理二进制数据。例如,您要读取图像文件,然后可以使用FileInputStream
;当您要将其保存到磁盘时,可以使用FileOutputStream
。