首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在java中不使用循环读取完整文件

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

Stack Overflow用户
提问于 2013-01-05 15:26:48
回答 5查看 195.7K关注 0票数 121

可能重复:

How to create a Java String from the contents of a file

Whole text file to a String in Java

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

代码语言:javascript
复制
 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();
 }
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-05 15:40:03

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

代码语言:javascript
复制
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");
票数 140
EN

Stack Overflow用户

发布于 2013-01-05 15:36:07

Java 7单行解决方案

代码语言:javascript
复制
List<String> lines = Files.readAllLines(Paths.get("file"), StandardCharsets.UTF_8);

代码语言:javascript
复制
 String text = new String(Files.readAllBytes(Paths.get("file")), StandardCharsets.UTF_8);
票数 195
EN

Stack Overflow用户

发布于 2013-01-05 15:30:55

如果您使用的是JDK5或更高版本,可以尝试使用Scanner

代码语言:javascript
复制
Scanner scan = new Scanner(file);  
scan.useDelimiter("\\Z");  
String content = scan.next(); 

或者您也可以使用Guava

代码语言:javascript
复制
String data = Files.toString(new File("path.txt"), Charsets.UTF8);
票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14169661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档