繁体   English   中英

在 Java GUI 中读取 txt 文件

[英]Reading a txt file in a Java GUI

我想要做的就是显示 txt 文件的全部内容。 我该怎么做呢? 我假设我将 JLabel 的文本设置为包含整个文件的字符串,但是如何将整个文件转换为字符串? 另外,txt 文件是否位于 Eclipse 的 src 文件夹中?

此代码用于在 Jtext 区域中显示所选文件的内容

      static void readin(String fn, JTextComponent pane) 
              {
             try 
              {
               FileReader fr = new FileReader(fn);
               pane.read(fr, null);
               fr.close();
              }
                 catch (IOException e) 
                 {
                  System.err.println(e);
                 }
              }

选择文件

         String cwd = System.getProperty("user.dir");
         final JFileChooser jfc = new JFileChooser(cwd);

            JButton filebutton = new JButton("Choose");
            filebutton.addActionListener(new ActionListener() 
            {
            public void actionPerformed(ActionEvent e) 
            {
                if (jfc.showOpenDialog(frame) !=JFileChooser.APPROVE_OPTION)

                        return;
                  File f = jfc.getSelectedFile();



            readin(f.toString(), textpane);

                  SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        frame.setCursor(Cursor.
                            getPredefinedCursor(
                            Cursor.DEFAULT_CURSOR));

                    }
                });
            }
        });

我想要做的就是显示 txt 文件的全部内容。 我该怎么做呢? 我假设我将 JLabel 的文本设置为包含整个文件的字符串,但如何将整个文件转换为字符串?

您最好使用JTextArea来执行此操作。 您还可以查看read()方法。

txt 文件是否放在 Eclipse 的 src 文件夹中?

不。 您可以从任何地方读取文件。 “读、写和创建文件”教程将是一个很好的起点

  • 在项目的工作文件夹中创建文本文件
  • 逐行读取您的文本文件
  • 将行内容存储在stringBuilder变量中
  • 然后将下一行内容附加到stringBuilder变量
  • 然后将StringBuilder变量的内容分配给JLabel的 text 属性

但是将整个文件的数据存储到JLabel ,使用JTextArea或任何其他文本容器并不是一个好主意。

像这样阅读你的文件:

BufferedReader br = new BufferedReader(new FileReader("file.txt"));
try {
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();

    while (line != null) {
        sb.append(line);
       line = br.readLine();
    }
    String everything = sb.toString();
} finally {
    br.close();
}

现在将所有内容的值分配给JLabelJTextArea

JLabel1.text=everything;
  1. 使用java.io打开文件流。
  2. 按行或字节从文件中读取内容。
  3. 将内容附加到StringBuilderStringBuffer
  4. StringBuilderStringBuffer设置为JLable.text

但我建议使用JTextArea ..

您不需要将此文件放在 src 文件夹中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM