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

标签 java file-io

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

.
.
.

File selFile = new File(fileChooser.getSelectedfile());
/// From here I want to load its content to a textarea "txtArea"

最佳答案

使用所有 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);
    }
}

关于java - 将文本文件加载到文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880169/

相关文章:

c++ - 将 struct 写入文件时写入了太多字节

java - 在此选择排序代码中,我从 {8,3,5,9,2} 得到一个数组答案 {2,3,3,5}

java - 替换缺失的 liquibase 类,从 liquibase 2.0.3 迁移到 3.3.0

java - Servlet "has started a thread but failed to stop it"- Tomcat 内存泄漏

java - 按照蜿蜒的模式(河流)在java swing中绘制图像

matlab - 使用 cell2mat 将数字矩阵与字符串向量(列标签)连接起来的问题

java - 是否有一个 XPath 表达式可以从两个不同的位置获取值?

康威的生命游戏 FileIO

python - 尝试打开()文件时出现类型错误: 'newline' is an invalid keyword argument for this function,

c++ - VXWORKS 模拟器限制?