我有两种方法可以使用FileReader和Other File InputStream读取java文件中的文本文件
FileReader fr=new FileReader("C:\\testq\\test.txt");
BufferedReader br=new BufferedReader(fr);
String s;
while((s=br.readLine())!=null){
System.out.println("value are "+s);
}
Run Code Online (Sandbox Code Playgroud)
和其他是
FileInputStream fstream = new FileInputStream("C:\\testnew\\out.text");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null){
System.out.println (strLine);
}
Run Code Online (Sandbox Code Playgroud)
虽然两者都给我输出......我只是想知道哪种方法最好.
Jon*_*eet 21
我强烈建议使用InputStreamReader而不是FileReader显式指定字符编码.这确实是使用的最大好处InputStreamReader(并且缺乏指定编码的能力FileReader是API中的一个主要漏洞,即IMO).
我也会删除"图层" DataInputStream- 只需将其传递FileInputStream给InputStreamReader构造函数.
在Java 8之前
或者,考虑使用Guava中的一些便利方法,这可以使这种事情变得更加简单.例如:
File file = new File("C:\\testnew\\out.text");
List<String> lines = Files.readLines(file, Charsets.UTF_8));
Run Code Online (Sandbox Code Playgroud)
来自Java 8
Java 8引入了一堆新的类和方法java.nio.files,其中许多默认(合理地)为UTF-8:
Path path = Paths.get("C:\\testnew\\out.text");
List<String> lines = Files.readAllLines(path);
Run Code Online (Sandbox Code Playgroud)