首页 > 代码库 > 12.JAVA之GUI编程打开与保存文件

12.JAVA之GUI编程打开与保存文件

功能:java图形用户界面开发,练习打开保存文件

代码如下:

import java.awt.FileDialog;import java.awt.Frame;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;class MyMenuDemo {    private Frame f;// 定义窗体    private MenuBar bar;// 定义菜单栏    private TextArea ta;    private Menu fileMenu;// 定义"文件"和"子菜单"菜单    private MenuItem openItem, saveItem, closeItem;// 定义条目“退出”和“子条目”菜单项    private FileDialog openDia, saveDia;// 定义“打开、保存”对话框    private File file;//定义文件    MyMenuDemo() {        init();    }    /* 图形用户界面组件初始化 */    public void init() {        f = new Frame("my window");// 创建窗体对象        f.setBounds(300, 100, 650, 600);// 设置窗体位置和大小        bar = new MenuBar();// 创建菜单栏        ta = new TextArea();// 创建文本域        fileMenu = new Menu("文件");// 创建“文件”菜单        openItem = new MenuItem("打开");// 创建“打开"菜单项        saveItem = new MenuItem("保存");// 创建“保存"菜单项        closeItem = new MenuItem("退出");// 创建“退出"菜单项        fileMenu.add(openItem);// 将“打开”菜单项添加到“文件”菜单上        fileMenu.add(saveItem);// 将“保存”菜单项添加到“文件”菜单上        fileMenu.add(closeItem);// 将“退出”菜单项添加到“文件”菜单上        bar.add(fileMenu);// 将文件添加到菜单栏上        f.setMenuBar(bar);// 将此窗体的菜单栏设置为指定的菜单栏。        openDia = new FileDialog(f, "打开", FileDialog.LOAD);        saveDia = new FileDialog(f, "保存", FileDialog.SAVE);        f.add(ta);// 将文本域添加到窗体内        myEvent();// 加载事件处理        f.setVisible(true);// 设置窗体可见    }    private void myEvent() {                // 打开菜单项监听        openItem.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                                openDia.setVisible(true);//显示打开文件对话框                                String dirpath = openDia.getDirectory();//获取打开文件路径并保存到字符串中。                String fileName = openDia.getFile();//获取打开文件名称并保存到字符串中                                if (dirpath == null || fileName == null)//判断路径和文件是否为空                    return;                else                    ta.setText(null);//文件不为空,清空原来文件内容。                file = new File(dirpath, fileName);//创建新的路径和名称                try {                    BufferedReader bufr = new BufferedReader(new FileReader(file));//尝试从文件中读东西                    String line = null;//变量字符串初始化为空                    while ((line = bufr.readLine()) != null) {                        ta.append(line + "\r\n");//显示每一行内容                    }                    bufr.close();//关闭文件                } catch (FileNotFoundException e1) {                    // 抛出文件路径找不到异常                    e1.printStackTrace();                } catch (IOException e1) {                    // 抛出IO异常                    e1.printStackTrace();                }            }        });                // 保存菜单项监听        saveItem.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                if (file == null) {                    saveDia.setVisible(true);//显示保存文件对话框                    String dirpath = saveDia.getDirectory();//获取保存文件路径并保存到字符串中。                    String fileName = saveDia.getFile();////获取打保存文件名称并保存到字符串中                                        if (dirpath == null || fileName == null)//判断路径和文件是否为空                        return;//空操作                    else                        file=new File(dirpath,fileName);//文件不为空,新建一个路径和名称                }                    try {                        BufferedWriter bufw = new BufferedWriter(new FileWriter(file));                                                String text = ta.getText();//获取文本内容                        bufw.write(text);//将获取文本内容写入到字符输出流                                                bufw.close();//关闭文件                    } catch (IOException e1) {                        //抛出IO异常                        e1.printStackTrace();                    }                            }        });                // 退出菜单项监听        closeItem.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                System.exit(0);            }        });                // 窗体关闭监听        f.addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {                System.exit(0);            }        });    }    public static void main(String[] args) {        new MyMenuDemo();    }}

程序截图: