我正在尝试创建一个程序,通过文本字段读取文件名并将其显示在文本区域中。我还需要一个清晰的按钮。这就是我到目前为止所做的:
private void enterButtonActionPerformed(java.awt.event.ActionEvent evt) {
String fileName = jTextField1.getText();
try {
FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
String s;
while ((s = br.readLine()) != null) {
jTextArea1.setText(s + "\n");
}
br.close();
} catch (IOException e) {
jTextArea1.setText("File not found!");
}
}
private void clearButtonActionPerformed(java.awt.event.ActionEvent evt) {
jTextField1.setText("");
jTextArea1.setText("");
}
出于某种原因,它不是在桌面上读取我的文本文件,称为“hi”。我怎么能让我的程序工作?我做错了什么?
答案 0 :(得分:3)
setText
这样做,设置字段的文本
现在,JTextArea
有一个简单的read
方法来阅读内容,例如
try (BufferedReader reader = new BufferedReader(new FileReader(new File("resources/New Text Document.txt")))) {
textArea.read(reader, "File");
} catch (IOException exp) {
exp.printStackTrace();
}
答案 1 :(得分:0)
我不确定你的问题,但这对我来说似乎不对,我想提一下你来解决它:
实际上你所做的是将最后一行文本放在textArea1中,如果你的最后一行是“\ n”或空行,那么显然你在屏幕上看不到任何内容。
最好使用StringBuffer来存储从文件中读取的行并显示整个文本。以下代码可以帮助您:
StringBuffer buffer = new StringBuffer();
String s;
while ((s = br.readLine()) != null) {
buffer.append(s).append('\n');
}
jTextArea1.setText(buffer.toString());
答案 2 :(得分:0)
你的代码实际上正在工作并且它正在读取文件,但是当你在while循环中分配你没有在字符串中连接字符串的值时你的代码在while循环中出错了我已经对你的代码做了一些修改试试这个。
String fileName = "src/hi.txt";
String content = "";
try {
FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
String s;
while ((s = br.readLine()) != null) {
content+="\n"+s;
}
System.out.println(content);
br.close();
} catch (Exception e) {
System.out.println("file not found");
}