当前位置: 首页 > 知识库问答 >
问题:

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

皇甫卓君
2023-03-14

可能的重复:
如何从文件的内容
整个文本文件创建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();
 }

共有3个答案

宋弘壮
2023-03-14

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

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

或者你也可以用番石榴

String data = Files.toString(new File("path.txt"), Charsets.UTF8);
史经业
2023-03-14

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

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");
朱令
2023-03-14

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);
 类似资料:
  • 问题内容: 我需要从FTP读取CSV文件头。 由于这些文件可能非常庞大,因此我不需要下载它们。 有没有办法从FTP读取CSV文件的第一行并中止连接? 问题答案: 只需阅读第一行,忽略剩余内容并关闭流。智能FTP客户端不会在提供任何内容供读取之前将 整个 流缓冲在内存中。 假设您使用的是Apache Commons Net FTPClient:

  • 问题内容: 我被困在我应该声明一个称为“ phrase”的字符串变量的部分,该变量不应一直循环播放。 让您知道我的任务是:与选项1相似,不同之处在于用户在输入第一队的结果后输入“ N”(而不是“ Q”)。然后,程序输入第二个团队名称及其结果,直到输入“ Q”。输出两个语句,例如选项1中的语句,然后输出第三条语句,该语句说明哪个团队处于第一位(基于点数) 输入样例: 样本输出: 更新 : 我的代码:

  • 任何帮助都是非常感谢的

  • 对于我的程序,我要编写一个程序,它接受2到10之间的行数。生成n行的乘法三角形。每行包含的条目不超过其行大小。这一点我没有问题。但是,在用户将数字0输入到我的问题“请输入要打印的行数:”之后,应该终止循环并打印“感谢您使用此程序!”我用了一个DO。。。WHILE循环以确定用户是否希望继续。在我的循环中,我将用户想要打印的数字声明为int num。我的循环应该持续到num

  • 如何从ReactJS组件中获取完整的URL? 我认为它应该是这样的东西,但它是

  • 线程“main”org.apache.poi.xssf.usermodel.xssfactory.createdocumentPart(xssfactory.java:62)在org.apache.poi.poi.xssf.usermodel.xssfworkbook(xssfworkbook.java:271)在org.apache.poi.xssf.usermodel.xssfactory.c