2011-10-15 257 views
1

在此代碼:如何將文本從文件移動到文本區域?

protected void open() { 
    if (fc.showOpenDialog(Main.this) == JFileChooser.APPROVE_OPTION) { 
     File file = fc.getSelectedFile(); 
    } 
} 

我怎樣才能得到file內容,並將其設置爲文本區域,稱爲textarea

+1

將文件讀入字符串(一般可搜索),然後設置組件的文本 - 什麼不適合你? –

+0

它是否特別是您需要的文本區域?使用'JEditorPane'非常簡單。 –

回答

6

使用所有Swing文本組件提供的API來讀取文件。例如:

FileReader reader = new FileReader(file); 
BufferedReader br = new BufferedReader(reader); 
textArea.read(br, null); 
br.close(); 
+1

哦,真好 - 不知道那個。雖然你應該關閉它在一個finally塊:) –

+0

camickr,如果文件需要太長時間,這會凍結gui? – nachokk

+0

@nachokk,是的,我猜想會。 – camickr

3

我假設你想把它看作文本?

如果你樂於使用第三方庫,我會親自使用Guava,這使得它瑣碎:

// This is assuming the file is UTF-8. If not, change appropriately. 
String text = Files.toString(file, Charsets.UTF_8); 
textarea.setText(text); 

注意,這將加載在UI線程的文件,該文件將掛起加載時的用戶界面...如果它是一個非常大的文件,並不好,但比委託給單獨的線程更簡單。

+0

+1委託給單獨的線程,因爲camickr答案似乎更好,它只能在edt中運行。 – nachokk