你如何读取文本文件并打印到控制台窗口? Java的(How do you read a text

2019-09-16 17:18发布

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

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。

谁能解释这像我这样的新手? 我有很少的经验,但我当然愿意去学习。 我愿意接受任何和所有的建议。 提前致谢!

Answer 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,而不是BufferedReader中。

关于最后一点,明智的做法是关闭一个文件,当你做了,你叫fw.close(),但你应该写testwords后直接称它。 这是为了确保已FileWriter的实际写入字符串。



Answer 2:

如果它是一个相对较小的文件,一个单行的Java 7+的方式来做到这一点:

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

如果你只是想读取到一个字符串,这也很简单:

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

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

干杯!



文章来源: How do you read a text file and print it to the console window? Java