如何读取文本文件并将其打印到控制台窗口? Java
我想阅读整个文本文件并将其全部内容存储到一个字符串中。然后我想将字符串打印到控制台窗口。我尝试这样做:如何读取文本文件并将其打印到控制台窗口? Java
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();
}
}
被打印到控制台窗口的唯一事情是[email protected]。
任何人都可以解释这一点像我这样的新手吗?我的经验很少,但我肯定愿意学习。我愿意接受任何和所有建议。提前致谢!
将[email protected]打印到控制台的原因是因为您将缓冲阅读器的引用作为打印参数,而不是要打印的字符串。
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(),但是你应该在编写测试用语后直接调用它。这是为了确保FileWriter实际上已经写入了字符串。
该程序不会编译。我收到一个不兼容的类型错误,它需要一个布尔线:while((line = r.readLine()!= null){你能帮助我吗? – user1299661 2012-04-25 02:44:51
Off course,sorry mate,编辑我的原始答案编译正确:) – Terraego 2012-04-25 09:18:21
我有,谢谢!有没有办法读取文件并将其存储到除字符串之外的其他类型中,该字符串也可以在数组中读取?我有一个程序,它接受一个文件的内容并将其组织成一个数组,然后它接受用户的输入并将其与文件的组件进行比较,但是对于一个字符串,处理大量文本需要大量时间文件。有什么建议? – user1299661 2012-04-26 12:16:10
如果它是一个相对较小的文件,一个单行的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了解更多详情。
干杯!
查看BufferedReader类API中的read()和readLine()方法:http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html – 2012-04-24 22:44:10
http://stackoverflow.com/questions/3886201/java-outputting-text-file-to-console – assylias 2012-04-24 22:45:13