【发布时间】:2016-07-15 08:34:05
【问题描述】:
我很困惑什么时候应该使用FileReader 和BufferedReader 的组合以及什么时候使用FileInputStream 来读取文件(并输出到日志)?
/**
* Created by mona on 3/26/16.
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
public class FileExample {
public static void main (String[] args) throws java.io.IOException {
File newFile = new File("tweet.txt");
FileWriter fileWriter = new FileWriter(newFile);
fileWriter.write("Mona Jalal");
fileWriter.append("\nMona Mona");
fileWriter.close();
/*FileReader fileReader = new FileReader(newFile);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
fileReader.close();
bufferedReader.close();
*/
FileInputStream fis = new FileInputStream(newFile);
System.out.println("fis");
System.out.println(fis.read()); //prints 77
int content;
while ((content=fis.read())!=-1){
System.out.print((char) content);
}
fis.close();
}
}
我正在使用Java 8。
【问题讨论】:
-
FileInputStream 将读取一个字节,然后您将其转换为一个字符。 BufferedReader 正在读取整行文本。字节与文本
-
两者都可以输出相同的东西。就像被注释的部分和未注释的部分都输出相同的东西,这就是为什么我很困惑
-
他们做同样的事情——更多的是关于效率。原始图像、音频、视频数据将使用 FileInputStream。在您的情况下,您检索文本,因此使用 BufferedReader 会更好
标签: java file bufferedreader filereader fileinputstream