java中
1: File file=new File("1.txt");文档没创建 而FileWriter out=new FileWriter("2.txt");文档就创建了,请问下什么时候他会自动创建什么时候不会自动创建?2:随机流的readline读取非ASCII乱码所以要重新编码  而缓冲流为啥可以直接用readline读取非ASCII的?3Q~

解决方案 »

  1.   

    建议看FileWriter源码,封装了判断文件存在的操作。
      

  2.   

    1、File只是文件对象
    FileWriter是Fileoutputstream(基础的字节流)和outputsreamwriter(转换流)组合构造出来的。这种IO流都会创建文件。
    2、你说的随机是RandomAccessFile吗?
    查看jdk API
    RandomAccessFile中的readline从此文件读取文本的下一行。此方法可以从该文件的当前文件指针处成功地读取字节,直到到达行结束符或文件的末尾。每个字节都转换为一个字符,方法是采用该字符的低八位字节值,并将该字符的高八位设置为零。因此,此方法不支持完整的 Unicode 字符集。 
      

  3.   

    File 对象并不保证对应的文件是存在的,如果要在目标路径下创建文件,需要调用 createNewFile() 方法。
      

  4.   

    file一般是文件流,是只读特性 ,FileWrite中你看源码中有一个方法是open(name);看是否存在,不存在创建。