随笔 2017-3-15 文件数据流的close()
来源:互联网 发布:产品数据图纸英语 编辑:程序博客网 时间:2024/06/05 20:32
今天写程序突然遇到一个问题:
File file = new File("Person.txt");PrintWriter out = new PrintWriter(file);out.print("写入程序的字符串");
不管怎么写,out都不能往Perosn.txt文件中写入东西。Person.txt文件中也一直为空。以前用PrintWriter写字符流的时候从没遇到类似问题。
经过反复观察,我发现写完 out.print() 后,MyEclipse没有提示 Resource leak: 'out' is never closed(流没有关闭),一般我都没有调用close()来关闭流,但编译器都会提醒,而且结果也没问题。不知道为何这次编译器没有提醒,我就试着加入out.close();
没想到就能往文件里面写东西了。看来不调用close(),还会对结果产生影响,但还不知道原理是为什么。
---------------------------------------分割线--------------------------------------------
今天用socket写一对多聊天的时候,再次出现了这个问题。后来到网上查了下,发现很多人都有类似的问题。
即:用PrintWriter的write方法和print方法时,不能写入(只有调用close()方法后才能写入)
但是,有些时候不能调用close()方法,比如我这次用Socket写聊天程序的时候,close()过后,就会抛出异常java.net.SocketException: socket closed。这是因为
close()过后,socket关闭,后面就不能进行读操作了。这时候,用println()就能够解决这个问题了。
这是详细解答,PrintWriter的write,print和println的区别
https://www.oschina.net/question/101123_17855
- 随笔 2017-3-15 文件数据流的close()
- close函数:关闭已经打开的文件
- 文件流close的小问题
- NTFS诡异的数据流文件ADS
- 【随笔】我的vimrc文件
- 文件或者类文件对象的close方法的作用
- 练习 2017-08-15 数据流
- linux文件函数-close
- 不带缓存的文件I/O操作 open/close
- 关于文件描述符的close-on-exec标志位
- 写文件字符流FileWriter的构造,flush,close
- 文件操作的系统调用之write ,close, lseek
- 【python】只对文件open,不close的后果
- 使用数据流下载文件
- 使用数据流下载文件
- 谈谈NTFS数据流文件
- Flex加载文件数据流
- 数据流文件读写示例
- blog 2
- Leetcode 98. Validate Binary Search Tree C++及javascript解答,不同语言不同玩法
- sql语句中where与having的区别
- C语言实现快速排序
- 转换流(字节流-->字符流)
- 随笔 2017-3-15 文件数据流的close()
- RecyclerView瀑布流加载图片实现
- leetcode 二叉树--之建BST树
- 文件I/O与标准I/O的区别和优缺点
- Android 使用Zxing实现二维码的生成,扫描
- 剪切(使用File类的renameTo 方法和递归实现非空目录的剪切)
- 速写KMP字符串匹配算法
- Mac上tomcat服务器的安装、配置、启动、关闭
- Rxjava 背压笔记