如何在Java应用程序中将文本文件内容导入到JTextArea?

qojgxg4l  于 2022-12-21  发布在  Java
关注(0)|答案(5)|浏览(146)

如何使用JFileChooser将文本文件内容导入Java应用程序中的JTextArea?

ny6fqffe

ny6fqffe1#

应该类似于下面的代码:

JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showOpenDialog(null); //replace null with your swing container
File file;
if(returnVal == JFileChooser.APPROVE_OPTION)     
  file = chooser.getSelectedFile();    
}

JTextArea text = new JTextArea();
BufferedReader in = new BufferedReader(new FileReader(file));
String line = in.readLine();
while(line != null){
  text.append(line + "\n");
  line = in.readLine();
}

基本逻辑是:

BufferedReader in = new BufferedReader(new FileReader(file));
String line = in.readLine();
while(line != null){
  text.append(line + "\n");
  line = in.readLine();
}
dbf7pr2w

dbf7pr2w2#

import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;
import java.io.File;

class DocumentViewer {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                final JFrame f = new JFrame("Document Viewer");
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                final JFileChooser fileChooser = new JFileChooser();

                JPanel gui = new JPanel(new BorderLayout());

                final JEditorPane document = new JEditorPane();
                gui.add(new JScrollPane(document), BorderLayout.CENTER);

                JButton open = new JButton("Open");
                open.addActionListener( new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                        int result = fileChooser.showOpenDialog(f);
                        if (result==JFileChooser.APPROVE_OPTION) {
                            File file = fileChooser.getSelectedFile();
                            try {
                                document.setPage(file.toURI().toURL());
                            } catch(Exception e) {
                                e.printStackTrace();
                            }
                        }
                    }
                });
                gui.add(open, BorderLayout.NORTH);

                f.setContentPane(gui);
                f.pack();
                f.setSize(400,300);
                f.setLocationByPlatform(true);

                f.setVisible(true);
            }
        });
    }
}
xu3bshqb

xu3bshqb3#

要将文件的内容导入到JTextArea中,只需执行以下步骤!
1.创建一个框架并向其中添加JTextArea。
1.声明并初始化一个JFileChooser。
1.向JFileChooser添加一个侦听器。
1.在actionPerformed中,应该获取所选的文件,并将其传递给读取该文件的方法(参见下面的NB)。
1.在该方法中,打开文件读取器并逐行读取文件的内容。在执行此操作时,将每一行追加到JTextArea。
1.当您到达文件末尾时,关闭文件读取器。
1.运行程序,你应该可以走了。
以上的步骤已经足够好来完成你的任务了。但是,当你给予一试的时候,我会编辑我的帖子并添加一个可能的解决方案。
注意:当你用JFileChooser选择一个文件时,它会返回一个File类型的Object,然后你应该使用File类提供的getName()方法来获取文件名。
链接可能会有帮助!
JFileChooser
File
Java tutorials on how to use the JFileChooser

ssm49v7z

ssm49v7z4#

确定从FileChooser给定的文件名,将文件内容读入String(例如,使用StringBuilder),使用JTextField#setText(String)将JTextArea的内容设置为缓冲区的内容。

vyu0f0g1

vyu0f0g15#

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    JFileChooser jf = new JFileChooser();
     final JEditorPane document = new JEditorPane();
    int returnval=jf.showDialog(this, null);
    File file = null;
    if(returnval == JFileChooser.APPROVE_OPTION)     
     file = jf.getSelectedFile(); 
    String str ;
    try {
        byte bt[]= Files.readAllBytes(file.toPath());   
        str=new String(bt,"UTF-8");
        System.out.println(str);
    } catch (IOException ex) {
        Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
    }
}

相关问题