【问题标题】:How do you read a text file and print it to the console window? Java如何读取文本文件并将其打印到控制台窗口?爪哇
【发布时间】:2012-04-24 22:40:20
【问题描述】:

我想读取整个文本文件并将其全部内容存储到单个字符串中。然后我想将字符串打印到控制台窗口。我试过这个:

import java.util.Scanner;
import java.io.*;

public class WritingTextFiles{

    public static void main (String [] args) throws IOException{
        FileWriter fw= new FileWriter("testing.txt");  
        Scanner in= new Scanner (System.in);
        String testwords=in.nextLine();  
        fw.write(testwords);  
        BufferedReader r = new BufferedReader( new FileReader( "testing.txt" ) );  
        System.out.print(r);  
        fw.close();  
    }
}

唯一打印到控制台窗口的是 java.io.BufferedReader@18fb397。

任何人都可以向像我这样的新手解释一下吗?我的经验很少,但我当然愿意学习。我对任何和所有建议持开放态度。提前致谢!

【问题讨论】:

标签: java file text java.util.scanner


【解决方案1】:

java.io.BufferedReader@18fb397 打印到控制台的原因是因为您将缓冲阅读器的引用作为打印参数,而不是您要打印的字符串。

BufferedReader r = new BufferedReader( new FileReader( "testing.txt" ) );
System.out.print(r);

应该是:

BufferedReader r = new BufferedReader( new FileReader( "testing.txt" ) );
String s = "", line = null;
while ((line = r.readLine()) != null) {
    s += line;
}
System.out.print(s);

请注意,我们实际上读取了文件的行并将其存储在一个临时变量中,然后我们将此变量附加到 s。然后我们打印 s,而不是 BufferedReader。

最后一点,完成后关闭文件是明智的,您确实调用了 fw.close(),但您应该在编写测试词后直接调用它。这是为了确保 FileWriter 确实写入了字符串。

【讨论】:

  • 程序无法编译。我收到一个不兼容的类型错误,需要在线布尔值:while((line=r.readLine()!=null) { 你能帮帮我吗?
  • 当然,对不起,伙计,我写了这段代码没有测试它。我编辑了我的原始答案以正确编译:)
  • 我有,谢谢!有没有办法读取文件并将其存储为字符串以外的类型,也可以在数组中读取?我有一个程序,它获取文件的内容并将其组织成一个数组,然后它获取用户的输入并将其与文件的组件进行比较,但是使用字符串,处理大文本需要大量时间文件。有什么建议吗?
  • 哦,听起来是个不错的项目,你可以读取文件的块,比如 250 行,然后将它们存储在数组或你自己的块对象中。然后只比较你读取的块,你不必一次加载整个文本文件,这样可以很好地扩展。
  • 如何从文件中读取特定数量的行?
【解决方案2】:

如果它是一个相对较小的文件,一个 Java 7+ 的单行方法是:

System.out.println(new String(Files.readAllBytes(Paths.get("testing.txt"))));

如果你只是想把它读成一个String,那也很简单:

String s = new String(Files.readAllBytes(Paths.get("testing.txt")));

更多详情请见https://docs.oracle.com/javase/7/docs/api/java/nio/file/package-summary.html

干杯!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多