A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

代码如下[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了,请问这是为什么啊??虽然我创建了输出流,但是我并没有用它啊

3 个回复

正序浏览
上面说的挺对的
回复 使用道具 举报
anTG 发表于 2016-11-24 13:28
FileOutputStream在创建对象的时候是如果没有这个文件会帮我们创建出来,如果有这个文件就会先将文件清空, ...

我看了一下 确实,谢谢讲解
回复 使用道具 举报
FileOutputStream在创建对象的时候是如果没有这个文件会帮我们创建出来,如果有这个文件就会先将文件清空,所以你可以试一下把这个输出流对象放在read方法后面他就可以读出49,但是你下次读的时候就又是-1了,以为上一次已经把文件清空了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马