黑马程序员技术交流社区

标题: 自己编写的记事本 保存时出BUG了 求高人解决 谢谢 [打印本页]

作者: 仙兒哥    时间: 2013-4-10 00:10
标题: 自己编写的记事本 保存时出BUG了 求高人解决 谢谢
本帖最后由 仙兒哥 于 2013-4-10 00:19 编辑

以下是打开文件的代码 :
//保存按钮
                MenuItem mntmNewItem_2 = new MenuItem(menu_1, SWT.NONE);
                mntmNewItem_2.setText("保存");
               
               
                mntmNewItem_2.addSelectionListener(new SelectionListener() {
                        public void widgetSelected(SelectionEvent e) {
                                
                                FileDialog dialog = new FileDialog(getShell());
                                dialog.setFilterExtensions(new String[]{"*.txt","*.java"});
                                
                                
                                dialog.setOverwrite(true);
                                
                                String saveFile=dialog.open();
                                
                                
                                String dir = dialog.getFilterPath();
                                String name = dialog.getFileName();
                                if (dir != null && name != null) {
                                        saveFile(new File(dir, name));                // 把TextArea中的文本写入到指定的File中
                                }
                        }
                        private void saveFile(File file) {
                                String content = Text.DELIMITER;
                                try (
                                        FileWriter fw = new FileWriter(file);
                                ) {
                                        fw.write(content);
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                        }

                        @Override
                        public void widgetDefaultSelected(SelectionEvent e) {
                                // TODO 自动生成的方法存根
                                
                        }
                });

之前的TXT文件


保存


竟然是打开!!!? 好吧点击一下试试吧



什么!!! 文件时空的了 那个TXT




作者: 仙兒哥    时间: 2013-4-10 11:01
高手来帮我解决一呀 有木有!!!?  黑马高手
作者: 梁航斌    时间: 2013-4-10 11:28
你用FileWriter,那么你有刷新吗?flush()
作者: 仙兒哥    时间: 2013-4-10 15:39
梁航斌 发表于 2013-4-10 11:28
你用FileWriter,那么你有刷新吗?flush()

额 呵呵  写的详细点儿背 我是个新手 初学者而已
作者: 梁航斌    时间: 2013-4-10 15:49
本帖最后由 梁航斌 于 2013-4-10 15:55 编辑
仙兒哥 发表于 2013-4-10 15:39
额 呵呵  写的详细点儿背 我是个新手 初学者而已

流的写入基本都要靠刷的,write();后记得flush();除了PrintWriter是自动刷新的,不过用的时候要注意,write()方法不支持自动刷新,可以用println();
  1. private void saveFile(File file) {
  2.                                 String content = Text.DELIMITER;
  3.                                 try (
  4.                                         FileWriter fw = new FileWriter(file);
  5.                                 ) {
  6.                                         fw.write(content);
  7.                                         //***************************
  8.                                         fw.flush();//这里带上刷新,就是把获取到的数据刷进去。
  9.                                         //***************************
  10.                                 } catch (IOException e) {
  11.                                         e.printStackTrace();
  12.                                 }
  13.                         }
复制代码

作者: 仙兒哥    时间: 2013-4-10 21:21
梁航斌 发表于 2013-4-10 15:49
流的写入基本都要靠刷的,write();后记得flush();除了PrintWriter是自动刷新的,不过用的时候要注意,writ ...

恩 非常感谢 你 解决了 呵呵

作者: 黄玉昆    时间: 2013-4-11 09:03
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2