JAVA图形化界面实现文件的“读取和写入”

本段程序结合I/O和Swing图形界面进行编写
源代码如下

package IO;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;

public class SwingText extends JFrame{
    private JFrame frame;
    private JTextArea jt;
    private JPanel jp1;
    private JPanel jp2;
    private Container c;
    private JButton read;
    private JButton write;
    private File file;
    /*
     * 此方法实例化文件对象,如果文件不存在,则新建文件
     */
    public void createFile(){
        file=new File("D:/2.txt");//实例化文件对象
        if (!file.exists()) {//判断文件是否存在
            try {
                file.createNewFile();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
    }
    /*
     * 此方法返回一个“读取文件”按钮
     */
    public JButton createReadButton(){
        JButton read=new JButton("读取文件");
        read.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                try {
                    FileReader fr=new FileReader(file);//读取文件内容
                    BufferedReader br=new BufferedReader(fr);//新建缓存
                    String s=null;
                    while ((s=br.readLine())!=null) {
                        jt.append(s);//设置文本框内容
                        jt.append("\n");//增加换行符
                    }
                } catch (Exception e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        });
        return read;
    }
    /*
     * 此方法返回一个“写入文件”按钮
     */
    public JButton createWriteButton(){
        JButton write=new JButton("写入文件");
        write.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                try {
                    FileWriter fw=new FileWriter(file);
                    fw.write(jt.getText());//将文本框内容全部写入文件
                    fw.close();
                    System.out.println("写入文件成功");//在控制台输出提示“文件写入成功”
                    jt.setText("");//清空文本框内容
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

            }
        });
        return write;
    }
    private void go(){
        createFile();
        frame=new JFrame("文件读取器");
        c=frame.getContentPane();
        read=createReadButton();//调用方法返回“读取文件”按钮
        read.setSize(50, 30);
        write=createWriteButton();//调用方法返回“写入文件”按钮
        write.setSize(50,30);
        jt=new JTextArea(20, 40);//设置文本框行数
        jt.setLineWrap(true);// 激活自动换行功能  
        jt.setWrapStyleWord(true);// 激活断行不断字功能
        jp1=new JPanel();
        jp1.add(jt);
        jp2=new JPanel();
        jp2.add(read);
        jp2.add(write);
        c.add(BorderLayout.NORTH,jp1);
        c.add(BorderLayout.SOUTH,jp2);
        frame.setVisible(true);
        frame.setSize(500,500);
    }
    public static void main(String[] args) {
        new SwingText().go();
    }
}

文件运行效果图如下
JAVA图形化界面实现文件的“读取和写入”_第1张图片

你可能感兴趣的:(java)