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