IT-Swarm.Net

在java中不使用循环读取完整文件

可能重复: /
如何从文件内容创建Java字符串
整个文本文件到Java中的字符串

我试图使用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();
 }
86
Adesh singh

如果文件是 small ,您可以读取整个数据一次:

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");
115
imxylz

快速,可靠且价格合理的云托管

注册并在30天内获得$50奖金!

Java 7一线解决方案

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

要么

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

如果您使用的是Java 5/6,则可以使用 Apache Commons IO 将读取文件转换为字符串。类 org.Apache.commons.io.FileUtils 包含几种读取文件的方法。.

例如使用方法FileUtils#readFileToString

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

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

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

或者你也可以使用 番石榴

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