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

代码如下
[Java] 纯文本查看 复制代码
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();


这是写程序做一个测试,所以输出流还没有用  c.txt里存放的是100,正常应该是读出1的Ascii码是49啊?
但是如果把输出流去掉,代码写成这样
[AppleScript] 纯文本查看 复制代码
public static void main(String[] args) throws IOException{
		FileInputStream fis  = new FileInputStream("c.txt");
int b = fis.read();
System.out.println(b);
fis.close();

读出来的就是49了,请问这是为什么啊??虽然我创建了输出流,但是我并没有用它啊

3 个回复

倒序浏览
FileOutputStream在创建对象的时候是如果没有这个文件会帮我们创建出来,如果有这个文件就会先将文件清空,所以你可以试一下把这个输出流对象放在read方法后面他就可以读出49,但是你下次读的时候就又是-1了,以为上一次已经把文件清空了
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
anTG 发表于 2016-11-24 13:28
FileOutputStream在创建对象的时候是如果没有这个文件会帮我们创建出来,如果有这个文件就会先将文件清空, ...

我看了一下 确实,谢谢讲解
回复 使用道具 举报
上面说的挺对的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马