黑马程序员技术交流社区
标题:
为什么这个输入流读出来的总是-1?
[打印本页]
作者:
zsq8210366
时间:
2016-11-24 12:28
标题:
为什么这个输入流读出来的总是-1?
代码如下[mw_shl_code=java,true]public static void main(String[] args) throws IOException{
FileInputStream fis = new FileInputStream("c.txt");
FileOutputStream fos = new FileOutputStream("c.txt");
int b = fis.read();
System.out.println(b);
fis.close();
fos.close();[/mw_shl_code]
这是写程序做一个测试,所以输出流还没有用 c.txt里存放的是100,正常应该是读出1的Ascii码是49啊?
但是如果把输出流去掉,代码写成这样
[mw_shl_code=applescript,true]public static void main(String[] args) throws IOException{
FileInputStream fis = new FileInputStream("c.txt");
int b = fis.read();
System.out.println(b);
fis.close();
[/mw_shl_code]
读出来的就是49了,请问这是为什么啊??虽然我创建了输出流,但是我并没有用它啊
作者:
anTG
时间:
2016-11-24 13:28
FileOutputStream在创建对象的时候是如果没有这个文件会帮我们创建出来,如果有这个文件就会先将文件清空,所以你可以试一下把这个输出流对象放在read方法后面他就可以读出49,但是你下次读的时候就又是-1了,以为上一次已经把文件清空了
作者:
zsq8210366
时间:
2016-11-24 15:33
anTG 发表于 2016-11-24 13:28
FileOutputStream在创建对象的时候是如果没有这个文件会帮我们创建出来,如果有这个文件就会先将文件清空, ...
我看了一下 确实,谢谢讲解
作者:
chenyanwei6
时间:
2016-11-24 23:28
上面说的挺对的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2