为什么我的只有
writer2writer2writer2writer2writer2
writer2writer2writer2writer2writer2
解决方案 »
- 谁帮我调下这个程序 谢谢 不知道错在哪了!
- 关于使用java中的事务处理数据库问题。请大家帮忙看看。谢谢!
- 50分求一个能够把java程序的堆栈信息打出来的免费工具
- 关于Object的使用?
- 请问可不可以在java中调用c语言写的自定义函数啊?
- 奇怪的问题!网页表单的值在servlet接收不到,错在哪里?
- 关于 <%@taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
- 请求高手解决:TrueTypeFont.open() NullPointerException
- snmp中的snmpViewMask与snmpSubtree 如何工作啊?谢谢!!!!
- java的++运算符
- 高手莫进!!!!
- 大家帮我看看这里的JProgress哪里用错了?
BufferedWriter writer1 = new BufferedWriter(new FileWriter(file));
BufferedWriter writer2 = new BufferedWriter(writer1);这样的效果其实是一个writer在起作用
writer1 = new BufferedWriter
(new OutputStreamWriter
(new FileOutputStream("H:\\log_18.csv", true)));
writer2 = new BufferedWriter
(new OutputStreamWriter
(new FileOutputStream("H:\\log_18.csv", true)));
但是发现一个现象,如果声明超过2个,第3个开始生成的对象地址就全部和第2个相同了,但输出结果还是象我开始那样,按对象的先后输出。
它只有到 显示的调用flush()或close()或对象即将被垃圾回收器回收时 才将内容写入文件的.
你可以这样试试:
writer1.write("writer1");
writer1.flush();
writer2.write("writer2");
writer2.flush();writer1.write("writer1");
writer1.flush();
writer2.write("writer2");
writer2.flush();
首先是在内存中生成默认的缓冲区来准备存放你的东东,默认的大小好像是512k吧
只有调用flush()或者buffer已经曼的时候才被写到目的地
我想对于同一个文件,如果说生成多个BufferedWriter代表什么,下面是10个时的输出的对象ID:
writer1:java.io.BufferedWriter@209f4e
writer2:java.io.BufferedWriter@3ac748
writer3:java.io.BufferedWriter@3ac748
writer4:java.io.BufferedWriter@3ac748
writer5:java.io.BufferedWriter@3ac748
writer6:java.io.BufferedWriter@3ac748
writer7:java.io.BufferedWriter@3ac748
writer8:java.io.BufferedWriter@3ac748
writer9:java.io.BufferedWriter@3ac748
writer10:java.io.BufferedWriter@3ac748
你们会发现除了第一个,后面都相等。
但是如果你使用flush就会发现,他们还是自己对应自己的flush。能不能解释一下?