2012-04-24 95 views
1

我想阅读整个文本文件并将其全部内容存储到一个字符串中。然后我想将字符串打印到控制台窗口。我尝试这样做:如何读取文本文件并将其打印到控制台窗口? 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]

任何人都可以解释这一点像我这样的新手吗?我的经验很少,但我肯定愿意学习。我愿意接受任何和所有建议。提前致谢!

+0

查看BufferedReader类API中的read()和readLine()方法:http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html – 2012-04-24 22:44:10

+0

http://stackoverflow.com/questions/3886201/java-outputting-text-file-to-console – assylias 2012-04-24 22:45:13

回答

6

[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实际上已经写入了字符串。

+0

该程序不会编译。我收到一个不兼容的类型错误,它需要一个布尔线:while((line = r.readLine()!= null){你能帮助我吗? – user1299661 2012-04-25 02:44:51

+0

Off course,sorry mate,编辑我的原始答案编译正确:) – Terraego 2012-04-25 09:18:21

+0

我有,谢谢!有没有办法读取文件并将其存储到除字符串之外的其他类型中,该字符串也可以在数组中读取?我有一个程序,它接受一个文件的内容并将其组织成一个数组,然后它接受用户的输入并将其与文件的组件进行比较,但是对于一个字符串,处理大量文本需要大量时间文件。有什么建议? – user1299661 2012-04-26 12:16:10

0

如果它是一个相对较小的文件,一个单行的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了解更多详情。

干杯!

相关问题