首先,我的java基础很基础。我正在尝试浏览 .txt 文件并将其内容加载到文本区域中。我完成了这部分,直到我从 JFileChooser 收到文件,现在我不知道如何做剩下的事情。
.
.
.
File selFile = new File(fileChooser.getSelectedfile());
/// From here I want to load its content to a textarea "txtArea"
使用所有 Swing 文本组件都支持的 read(...) 和 write(...) 方法。简单的例子:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.text.*;
class TextAreaLoad
{
public static void main(String a[])
{
final JTextArea edit = new JTextArea(10, 60);
edit.setText("one\ntwo\nthree");
edit.append("\nfour\nfive");
JButton read = new JButton("Read TextAreaLoad.txt");
read.addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
FileReader reader = new FileReader( "TextAreaLoad.txt" );
BufferedReader br = new BufferedReader(reader);
edit.read( br, null );
br.close();
edit.requestFocus();
}
catch(Exception e2) { System.out.println(e2); }
}
});
JButton write = new JButton("Write TextAreaLoad.txt");
write.addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
FileWriter writer = new FileWriter( "TextAreaLoad.txt" );
BufferedWriter bw = new BufferedWriter( writer );
edit.write( bw );
bw.close();
edit.setText("");
edit.requestFocus();
}
catch(Exception e2) {}
}
});
JFrame frame = new JFrame("TextArea Load");
frame.getContentPane().add( new JScrollPane(edit), BorderLayout.NORTH );
frame.getContentPane().add(read, BorderLayout.WEST);
frame.getContentPane().add(write, BorderLayout.EAST);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo( null );
frame.setVisible(true);
}
}
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(selFile));
String str;
while ((str = in.readLine()) != null) {
jtextArea.append(str);
}
} catch (IOException e) {
} finally {
try { in.close(); } catch (Exception ex) { }
}
对于缩进和换行,您必须使用“ " 在附加到文本区域之前..
BufferedReader buff = null;
try {
buff = new BufferedReader(new FileReader(selFile));
String str;
while ((str = buff.readLine()) != null) {
jtextArea.append("\n"+str);
}
} catch (IOException e) {
} finally {
try { in.close(); } catch (Exception ex) { }
}
try {
BufferedReader reader = new BufferedReader(new FileReader("notes.nwp"));
data = reader.read();
while (data != -1)
{
// print the character to the screen
k = new JTextArea((char)data);
data = reader.read();
}
reader.close();
}
catch(IOException e1) {
}
使用
BufferedReader
逐行读取 .txt 文件。然后,您可以将每一行附加到文本区域。