2012-04-24 86 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瞭解更多詳情。

乾杯!

相關問題