你如何阅读文本文件并将其打印到控制台窗口?Java的

use*_*661 1 java text file java.util.scanner

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

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();  
    }
}
Run Code Online (Sandbox Code Playgroud)

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

任何人都可以向像我这样的新手解释这个吗?我的经验很少,但我当然愿意学习.我愿意接受任何建议.提前致谢!

Ter*_*ego 6

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

BufferedReader r = new BufferedReader( new FileReader( "testing.txt" ) );
System.out.print(r);
Run Code Online (Sandbox Code Playgroud)

应该:

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

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

最后一点,最好在完成后关闭文件,你可以调用fw.close(),但是你应该在编写测试用语后直接调用它.这是为了确保FileWriter实际上已经写了字符串.