2011-10-15 105 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

相关问题