我有一个文件,我知道该文件将始终只包含一个单词。那么读取此文件的最有效方法应该是什么?
我是否还必须为小文件创建输入流阅读器,或者是否有其他可用选项?
使用扫描仪
File file = new File("filename");
Scanner sc = new Scanner(file);
System.out.println(sc.next()); //it will give you the first word
如果您有 int,float... 作为第一个单词,您可以使用相应的函数,例如 nextInt(),nextFloat()...等。
-使用InputStream
和Scanner
读取文件。
例如:
public class Pass {
public static void main(String[] args){
File f = new File("E:\\karo.txt");
Scanner scan;
try {
scan = new Scanner(f);
while(scan.hasNextLine()){
System.out.println(scan.nextLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- Guava
图书馆精美而有效地处理这个问题。
使用 BufferedReader 和 FileReader 类。仅两行代码就足以读取一个单词/一行文件。
BufferedReader br = new BufferedReader(new FileReader("Demo.txt"));
System.out.println(br.readLine());
这是一个小程序。空文件将导致打印“null”作为输出。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class SmallFileReader
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("Demo.txt"));
System.out.println(br.readLine());
}
}
高效是指性能方面还是代码简单(懒惰的程序员)?
如果是第二个,那么我所知道的一切都比不上:
String fileContent = org.apache.commons.io.FileUtils.readFileToString("/your/file/name.txt")