从文本字段中读取文件的名称并显示它

时间:2016-04-15 20:40:26

标签: java swing

我正在尝试创建一个程序,通过文本字段读取文件名并将其显示在文本区域中。我还需要一个清晰的按钮。这就是我到目前为止所做的:

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”。我怎么能让我的程序工作?我做错了什么?

3 个答案:

答案 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");
}