如何使用JFrame在系统控制台输出中输出文件内容?

时间:2015-09-03 07:52:56

标签: java swing file file-read

我正在使用JFrame Java Swing获取如下所示的代码:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

    String filename = (jTextField1.getText());
    if (filename.endsWith(".log")) {
        Scanner inFile1 = new Scanner(filename).useDelimiter(";");
        List<String> temps = new ArrayList<String>();

        // while loop
        while (inFile1.hasNext()) {
            // find next line
            String token1 = inFile1.next();
            temps.add(token1);
        }
        inFile1.close();

        String[] tempsArray = temps.toArray(new String[0]);
        for (String s : tempsArray) {
            System.out.println(s);
        }

此代码有效,但它只显示文件名作为文件名本身(例如,如果我的文件名= lalala.txt,控制台中的输出将是lalala.txt)我已尝试过此代码但它不显示文件内的内容。在控制台输出中使用JFrame作为GUI时,如何显示文件中的内容?我的GUI由一个显示文件名的文本字段组成,当我单击jButton2时,我希望按钮显示文件的内容而不是文件名。它运行得很好,但它不是我想要的输出。

2 个答案:

答案 0 :(得分:0)

您正在使用:

   new Scanner(filename).useDelimiter(";");

反过来又从字符串filename读取数据。而是使用:

 new Scanner(new File(filename)).useDelimiter(";");

答案 1 :(得分:0)

只需使用:

    try
    {
        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(new File("absolute path to your text file...")),"UTF8"));

        String buf;
        while ((buf = in.readLine()) != null)
        {
            System.out.println(buf);
        }
        in.close();
    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
相关问题