黑马程序员技术交流社区
标题:
IO的问题
[打印本页]
作者:
adamjy
时间:
2014-4-5 15:30
标题:
IO的问题
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("d:\\practice\\a.txt"));
为什么这句话执行完之后,直接将a.txt文档里面的东西置为空了????
作者:
一年_Hei
时间:
2014-4-5 15:47
IO流操作文件,如果文件存在,则覆盖原文件,就相当于把原来的文件删了,在建一个新的文件,和这个文件同名。如果不存在这个文件,就直接建立这个文件。楼主如果想在文件后面添加内容可以在构造函数中加一个Boolean值,ture。如:new FileOutputStream("d:\\practice\\a.txt",ture);
作者:
Kelvinhu
时间:
2014-4-6 00:36
public FileOutputStream(File file,
boolean append)
throws FileNotFoundException
参数:
file - 为了进行写入而打开的文件。
append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处
很显然,LZ用的
public FileOutputStream(File file)
throws FileNotFoundException
这种方法文本是被覆盖掉了。如果不想覆盖想追加可以用前面那个将append参数设置为true
作者:
也许依然
时间:
2014-4-6 11:18
OutputStreamWriter是转换流,它是字符通向字节的桥梁,参数必须是一个字节输出流
当定义OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("d:\\practice\\a.txt"));时
传入一个文件输出流
new FileOutputStream("d:\\practice\\a.txt")是指创建一个输出流向字符串表示的文件中写入数据,如果文件已经存在,则覆盖该文件,如果想添加数据,
new FileOutputStream("d:\\practice\\a.txt",true);
作者:
心?=忐§忑]
时间:
2014-4-6 15:12
因为这个大类是字符流转字节流的,它是由缓冲区的,在没有关闭此流时 ,数据还存储在缓冲去里。
作者:
Peach2014
时间:
2014-4-6 20:05
本帖最后由 Peach2014 于 2014-4-6 20:12 编辑
实际上当执行完“new FileOutputStream("d:\\practice\\a.txt")”这一句话后,a.txt中的文档就已经被刷新成空的。这句话可以理解为,在“d:\practice\”目录下创建一个a.txt文件,如果之前有就直接覆盖之前的。
FileOutputStream
(
File
file)
创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
FileOutputStream
(
File
file, boolean append)
创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
如果你不想覆盖之前的内容,而只是想添加内容,那就需要调用下面的这个构造函数!
作者:
zhangbingyuan
时间:
2014-4-6 21:01
楼主应该是没弄明白FileOutStream,建议楼主看一下JDK 中有关FileOutStream方法的,这个方法有很多重载的方法,你如果是想要在这个a.txt上追加东西可以使用public FileOutputStream(String name, boolean append) ; 创建一个向具有指定 name 的文件中写入数据的输出文件流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。详见如下网址:http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/java/io/FileOutputStream.html#FileOutputStream(java.io.File)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2