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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

目前我只写了打开文件功能。但是保存功能我还没实现。真的是写不下去了。
保存功能在代码中央位置吧。我只写了一点点。
想不出法子。求大神给思路。。。。。。代码如下。

public class Demo3iFrame {

                //创建记事本窗体。
                JFrame frame =new JFrame("我的记本事");
               
                //菜单条
                JMenuBar menuBar =new JMenuBar();
               
                //菜单
                JMenu fileMenu =new JMenu("文件");
                JMenu helpMenu =new JMenu("帮助");
               
                //菜单项
                JMenuItem openItem =new JMenuItem("打开");
                JMenuItem saveItem =new JMenuItem("保存");
                JMenuItem exitItem =new JMenuItem("退出");
               
                //复选菜单
                JMenu editMenu =new JMenu("编辑");
                JMenu copyItem =new JMenu("复制");
                JMenu searchItem =new JMenu("查找");
               
                //文件对话框1.打开文件。2.保存文件。
                FileDialog fileDialog1 =new FileDialog(frame,"请选择打开文件",FileDialog.LOAD);
                FileDialog fileDialog2 =new FileDialog(frame,"请选择保存路径",FileDialog.SAVE);
               
                //关于
                JMenuItem aboutItem =new JMenuItem("关于");
               
                //文本域。
                JTextArea area =new JTextArea(40,30);
                       
                       
                public void init(){
                        frame.setBounds(500,150,500,400);
                        //把菜单添加到菜单条上
                        menuBar.add(fileMenu);
                        menuBar.add(helpMenu);
                       
                        //把菜单项添加到菜单上
                        fileMenu.add(openItem);
                        fileMenu.add(saveItem);
                        fileMenu.add(exitItem);
                        helpMenu.add(aboutItem);
                       
                        //给打开选项添加监听器
                        openItem.addActionListener(new ActionListener() {
                               
                                @Override
                                public void actionPerformed(ActionEvent e) {
                                        try {
                                                fileDialog1.setVisible(true);//显示出来
                                                String fileName =fileDialog1.getFile();//获取打开的文件名
                                                String path =fileDialog1.getDirectory();//获取打开的文件路径
                                                System.out.println("文件路径:"+path);
                                                System.out.println("文件名:"+fileName);                                                                                       
                                               
                                                File file =new File(path+fileName);//获取文件名和路径
                                                FileInputStream fileInputStream =new FileInputStream(file);       
                                                //读文件内容。
                                               
                                                byte[] buf =new byte[1024];
                                                int length =0;
                                                //边读边写。
                                                while((length= fileInputStream.read(buf))!=-1){
                                                        area.setText(new String(buf,0,length));
                                                        //把文件内容写到文本域。
                                                }
                                               
                                        } catch (Exception e1) {
                                               
                                                e1.printStackTrace();
                                        }
                                       
                                       
                                }
                        });
                        //添加退出事件。点击退出程序即时退出。
                        exitItem.addActionListener(new ActionListener(){
                               
                                public void actionPerformed(ActionEvent e) {
                       
                                        System.exit(0);
                                }
                        });
                       
                        //给保存添加事件
                        saveItem.addActionListener(new ActionListener() {
                               
                                @Override
                                public void actionPerformed(ActionEvent e) {
                                        try {
                                                fileDialog2.setVisible(true);//显示出来
                                                String fileName =fileDialog2.getFile();//获取文件名
                                                String path =fileDialog2.getDirectory();//获取保存路径
                                       
                                                File file =new File(path+fileName);//创建File对象。把文件名和路径传入
                                               
                                                FileOutputStream out =new FileOutputStream(file);//把File对象传给输出流
                                               
                                                byte[] buf2 =new byte[1024];
                                                int length2 =0;
                                                while((length2=????????)){
                                                       
                                                }
                                               
                                        } catch (FileNotFoundException e1) {
                                               
                                                e1.printStackTrace();
                                        } catch (IOException e1) {
                                               
                                                e1.printStackTrace();
                                        }
                                       
                                }
                        });
                       
                       
                        //复选菜单     菜单添加菜单。
                        fileMenu.add(editMenu);
                        editMenu.add(copyItem);
                        editMenu.add(searchItem);
                       
                        frame.add(area);
                        frame.add(menuBar,BorderLayout.NORTH);
                        frame.setVisible(true);
                        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                       
                }
        public static void main(String[] arge){
                Demo3iFrame d =new Demo3iFrame();
                d.init();               
        }
}


评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

2 个回复

倒序浏览
保存其实就是一个复制的过程,就是把你文本里的文本复制到制定文件中的过程,你可以选择使用字节流或者是字符流,或者选用他们的缓冲区都行,只要在你的保存(MenuItem)的监听器中加流的复制就行了,你可以试试,不懂可以再问我

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
谢谢。我用缓冲区字符流已经搞定了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马