读取完整的文件,而不使用java中的循环

可能重复:
如何从文件的内容创buildJavastring
将整个文本文件转换为Java中的string

我正在尝试使用FileReader读取文件的内容。 但我想阅读文件,而不是逐行阅读。 是否有可能读取整个文件没有循环。 我正在使用下面的代码

try { File ff=new File("abc.txt"); FileReader fr=new FileReader(ff); String s; while(br.read()!=-1) { s=br.readLine(); } } catch(Exception ex) { ex.printStackTrace(); } 

如果文件很小 ,则可以一次读取整个数据:

 File file = new File("a.txt"); FileInputStream fis = new FileInputStream(file); byte[] data = new byte[(int) file.length()]; fis.read(data); fis.close(); String str = new String(data, "UTF-8"); 

Java 7一线解决scheme

 List<String> lines = Files.readAllLines(Paths.get("file"), StandardCharsets.UTF_8); 

要么

  String text = new String(Files.readAllBytes(Paths.get("file")), StandardCharsets.UTF_8); 

如果您使用的是JDK5或更高版本,则可以尝试使用扫描仪 。

 Scanner scan = new Scanner(file); scan.useDelimiter("\\Z"); String content = scan.next(); 

或者你也可以使用番石榴

 String data = Files.toString(new File("path.txt"), Charsets.UTF8); 

如果您正在使用Java 5/6,则可以使用Apache Commons IO读取文件以string。 org.apache.commons.io.FileUtils类包含几个读取文件的方法。

例如使用FileUtils#readFileToString方法:

 File file = new File("abc.txt"); String content = FileUtils.readFileToString(file);