将文本文件加载到文本区域

问题描述 投票:0回答:5

首先,我的java基础很基础。我正在尝试浏览 .txt 文件并将其内容加载到文本区域中。我完成了这部分,直到我从 JFileChooser 收到文件,现在我不知道如何做剩下的事情。

.
.
.

File selFile = new File(fileChooser.getSelectedfile());
/// From here I want to load its content to a textarea "txtArea"
java file-io
5个回答
13
投票

使用所有 Swing 文本组件都支持的 read(...) 和 write(...) 方法。简单的例子:

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.text.*;

class TextAreaLoad
{
    public static void main(String a[])
    {
        final JTextArea edit = new JTextArea(10, 60);
        edit.setText("one\ntwo\nthree");
        edit.append("\nfour\nfive");

        JButton read = new JButton("Read TextAreaLoad.txt");
        read.addActionListener( new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try
                {
                    FileReader reader = new FileReader( "TextAreaLoad.txt" );
                    BufferedReader br = new BufferedReader(reader);
                    edit.read( br, null );
                    br.close();
                    edit.requestFocus();
                }
                catch(Exception e2) { System.out.println(e2); }
            }
        });

        JButton write = new JButton("Write TextAreaLoad.txt");
        write.addActionListener( new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try
                {
                    FileWriter writer = new FileWriter( "TextAreaLoad.txt" );
                    BufferedWriter bw = new BufferedWriter( writer );
                    edit.write( bw );
                    bw.close();
                    edit.setText("");
                    edit.requestFocus();
                }
                catch(Exception e2) {}
            }
        });

        JFrame frame = new JFrame("TextArea Load");
        frame.getContentPane().add( new JScrollPane(edit), BorderLayout.NORTH );
        frame.getContentPane().add(read, BorderLayout.WEST);
        frame.getContentPane().add(write, BorderLayout.EAST);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationRelativeTo( null );
        frame.setVisible(true);
    }
}

2
投票
BufferedReader in = null;
try {
    in = new BufferedReader(new FileReader(selFile));
    String str;
    while ((str = in.readLine()) != null) {
        jtextArea.append(str);
    }
} catch (IOException e) {
} finally {
    try { in.close(); } catch (Exception ex) { }
}

0
投票

对于缩进和换行,您必须使用“ " 在附加到文本区域之前..

  BufferedReader buff = null;
  try {
       buff = new BufferedReader(new FileReader(selFile));
       String str;
       while ((str = buff.readLine()) != null) {
       jtextArea.append("\n"+str);
   }
 } catch (IOException e) {
  } finally {
    try { in.close(); } catch (Exception ex) { }
    }

0
投票
try {
            
            BufferedReader reader = new BufferedReader(new FileReader("notes.nwp"));
            data = reader.read(); 

            while (data != -1) 
            {
               // print the character to the screen
               k = new JTextArea((char)data);
               data = reader.read();
            }
            reader.close();
        }
        catch(IOException e1) {
            
        }

-1
投票

使用

BufferedReader
逐行读取 .txt 文件。然后,您可以将每一行附加到文本区域。

© www.soinside.com 2019 - 2024. All rights reserved.