JAVA 同时新建输入流对象和输出流对象,但是写入数据的时候文件被清空 5

源码:publicclassDemo{publicstaticvoidmain(String[]args)throwsIOException{FileOutputStre... 源码:
public class Demo {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("demo.txt");
FileInputStream fis = new FileInputStream("demo.txt");

fos.write(10);

}
}
这时候我打开 demo.txt 之前的数据也没了,新数据也没写入~ 求解
展开
 我来答
419405641
2015-02-25
知道答主
回答量:5
采纳率:0%
帮助的人:6631
展开全部
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("demo.txt",true);//加个参数,是否追加到内容末尾
FileInputStream fis = new FileInputStream("demo.txt");

//fos.write(10);//10是int,文件输出流换下面方式写
fos.write("10".getBytes()); //把你需要写进文件的内容转换为string.getBytes()就可以写进去了
}
追问
我想知道为啥那样写不了
305661006
2015-02-25 · TA获得超过183个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:141万
展开全部
FileInputStream fis = new FileInputStream("demo.txt");
这种构造方法是清空源文件的,追加模式
FileInputStream fis = new FileInputStream("demo.txt",true);
结束后关闭流是常识,close方法调用fos.flush();
追问
我关闭了流后还是一样的,东西写不进去= =
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6c3a79b
2019-11-20
知道答主
回答量:3
采纳率:0%
帮助的人:1.2万
展开全部
fos.write(10)
写入的数据后,用IDE查看或记事本看会查询ASCll编码表。
ASCII中的0~31为控制字符,10对应的控制字符对应的是换行/新行,所以你看的时候什么都没有。因此楼下建议的写法才是通用写法。
输出输出流同时创建的话,那么读取操作就会将文件内容清空,是有冲突的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式