JTextPane 从文本文件读取
JTextPane read from text file
我有一个包含 3 行的 .txt 文件
我的 GUI 代码是
txtpnEmergencyAmbulanceAnd = new JTextPane();
try {
// FileReader reads text files in the default encoding.
FileReader fileReader = new FileReader(fileNumbers);
// Always wrap FileReader in BufferedReader.
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((lineNumbers = bufferedReader.readLine()) != null) {
txtpnEmergencyAmbulanceAnd.setText(lineNumbers);
}
// Always close files.
bufferedReader.close();
}
catch(FileNotFoundException ex) {
System.out.println(
"Unable to open file '" +
fileNumbers + "'");
}
catch(IOException ex) {
System.out.println(
"Error reading file '"
+ fileNumbers + "'");
}
然而,打印到我的 GUI 中的只是最后一行。我正在尝试打印出所有三行
我也将其作为全局
String fileNumbers = "numbers.txt";
String lineNumbers = "";
setText
确实如此,将组件文本设置为您传递给它的值,丢弃它之前拥有的任何内容。
改为尝试使用 JTextPane#read(Reader, Object)
仅供参考:您可能需要仔细查看 The try-with-resources Statement 以便更好地管理您的资源
是的,因为您在每个 运行 上覆盖了 JTextPane
的内容。
快速而肮脏的解决方案:
txtpnEmergencyAmbulanceAnd.setText(txtpnEmergencyAmbulanceAnd.getText() + lineNumbers);
我有一个包含 3 行的 .txt 文件
我的 GUI 代码是
txtpnEmergencyAmbulanceAnd = new JTextPane();
try {
// FileReader reads text files in the default encoding.
FileReader fileReader = new FileReader(fileNumbers);
// Always wrap FileReader in BufferedReader.
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((lineNumbers = bufferedReader.readLine()) != null) {
txtpnEmergencyAmbulanceAnd.setText(lineNumbers);
}
// Always close files.
bufferedReader.close();
}
catch(FileNotFoundException ex) {
System.out.println(
"Unable to open file '" +
fileNumbers + "'");
}
catch(IOException ex) {
System.out.println(
"Error reading file '"
+ fileNumbers + "'");
}
然而,打印到我的 GUI 中的只是最后一行。我正在尝试打印出所有三行 我也将其作为全局
String fileNumbers = "numbers.txt";
String lineNumbers = "";
setText
确实如此,将组件文本设置为您传递给它的值,丢弃它之前拥有的任何内容。
改为尝试使用 JTextPane#read(Reader, Object)
仅供参考:您可能需要仔细查看 The try-with-resources Statement 以便更好地管理您的资源
是的,因为您在每个 运行 上覆盖了 JTextPane
的内容。
快速而肮脏的解决方案:
txtpnEmergencyAmbulanceAnd.setText(txtpnEmergencyAmbulanceAnd.getText() + lineNumbers);