簡體   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