像BufferedInputStream bf=
new BufferedInputStream(new FileInputStream("hello.txt"));执行这样的语句,如果我没有创建HELLO.TXT他是会建帮我建了一个,我之前是如果有HELLO.TXT这个文件一建立流后,就把原来准备读入的文件给覆盖掉变成0字节,后来把WORKSPACE重换了下好,又不建了,这是怎么回事?
那请问到底是IO流建立流后,会创建文件吗 ?还是找不到文件会抛异常??

解决方案 »

  1.   

    FileInputStream 不会创建文件,只会读取文件到流里面。
    FileOutputStream 才可能创建文件。
      

  2.   

    FileOutputStream 也不会创建文件FileOutputStream在构造的时候可以定义是不是append模式,就是说是不是追加方式来写。默认的是不追加。这样就会把原来的文件变成空。但不是通过create创建的。
      

  3.   

    我试了下,跟fool_leave情况一样,呵呵
      

  4.   

    FileInputStream是不会更改文件的。
    至于FileOutputStream应该会创建文件的,除非抛异常
      

  5.   

    FileInputStream是不会更改文件的。
    至于FileOutputStream应该会创建文件的,除非抛异常
    -------------------------------------------------
    这是scjp中的一个考点,FileOutputStream是会创建文件的!
      

  6.   

    sorry
    果然FileOutputStream会创建文件
    append模式情况下虽然是追加写入,但不知道实现方法。如果append下也创建文件,那相当于读入再写出,就是说实际上也是消耗资源很大的。
    没有找到创建文件和续写的地方,谁知道具体是怎么实现的吗?