A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 湛添友 中级黑马   /  2014-4-24 18:35  /  872 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//有时候打开文本文件  并没有覆盖   而是续写了   这是为什么呢?     就是打开新的文本 旧的文本还在


package iofile;

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.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringWriter;

//菜单
public class MenuDemo {
        public static void main(String args[])
        {
                new MenuTest();
        }
}

class MenuTest
{
        private Frame f;//窗体
        private MenuBar bar;//菜单栏
        private Menu filemenu;//文件菜单
        private TextArea ta;//文本区
        private MenuItem closeitem,savefile,openFile;//菜单条目
        private File file;//封装文件目录
        MenuTest()
        {
                init();
        }
        public void init()
        {
                f=new Frame("简单记事本");
                f.setBounds(300,100,500,450);//位置大小
        //        f.setLayout(new FlowLayout());   默认为边界布局
                ta=new TextArea();
                f.add(ta);
                bar=new MenuBar();
                filemenu=new Menu("文件");
                openFile=new MenuItem("打开");
                savefile=new MenuItem("保存");
                closeitem=new MenuItem("退出");
                filemenu.add(openFile);//添加 打开条目
                filemenu.add(savefile);//添加 存储条目
                filemenu.add(closeitem);//添加 退出条目
                bar.add(filemenu);//文件菜单
                f.setMenuBar(bar);//添加菜单栏
               
                myEvent();//事件监听器
               
                f.setVisible(true);//显示窗体
        }
        public void myEvent()//事件监听器
        {
                f.addWindowListener(new WindowAdapter()//窗体事件监听器
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);
                        }
                });
                closeitem.addActionListener( new ActionListener() //退出事件
                {
                        @Override
                        public void actionPerformed(ActionEvent e)
                        {
                                // TODO Auto-generated method stub
                                System.exit(0);
                        }
                });
                openFile.addActionListener(new ActionListener()//打开文件事件
                {

                        public void actionPerformed(ActionEvent e)
                        {
                                FileDialog open=new FileDialog(f,"打开",FileDialog.LOAD);//建立                初始化对话框
                               
                                open.setVisible(true);//显示对话框
                                String dir=open.getDirectory();
                                String files=open.getFile();
                                if(dir==null||files==null)//若没有选取 则返回
                                        return;
                               
                                ta.setText("");//选取文件后 清空文本区
                               
                                file=new File(dir,files);
                                BufferedReader br = null;//字符读取流
                                try
                                {
                                        br=new BufferedReader(new FileReader(file));
                                        String len=null;
                                        while((len=br.readLine())!=null)
                                        {
                                                ta.append(len+"\r\n");
                                        }
                                }
                                catch(IOException ioe)
                                {
                                        throw new RuntimeException("文件读取失败");
                                }
                                finally
                                {
                                        if(br!=null)
                                                try{br.close();}
                                        catch(IOException ie)
                                        {throw new RuntimeException("文本读取失败");}
                                }
                               
                        }       
                               
                });
                savefile.addActionListener(new ActionListener()//保存文件事件
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                FileDialog save=new FileDialog(f,"保存",FileDialog.SAVE);//创建始化对话框
                                if(file==null)//若目录为不存在 则创建目录
                                {
                                        save.setVisible(true);//显示对话框
                                        String dir=save.getDirectory();
                                        String files=save.getFile();
                                        if(dir==null||files==null)//若没有选取 则返回
                                                return;
                                       
                                        file=new File(dir,files);
                                       
                                       
                                       
                                }
                                BufferedWriter bw = null;//字符输出流
                                try
                                {
                                        bw=new BufferedWriter(new FileWriter(file));
                                        bw.write(ta.getText());
                                        bw.flush();
                                }
                                catch(IOException ioe)
                                {
                                        throw new RuntimeException("文件读取失败");
                                }
                                finally//关闭资源
                                {
                                        if(bw!=null)
                                                try{bw.close();}
                                        catch(IOException ie)
                                        {throw new RuntimeException("文本读取失败");}
                               
                                }
                        }
                });
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马