import java.io.*;public class FileTest {    /**
     * @param args
     */
    public static void main(String[] args) throws FileNotFoundException 
    {
        String dir = System.getProperty("user.dir");
        System.out.println(dir);
        
        PrintWriter out = new PrintWriter("myfile.txt");
        out.print(dir);
    }}为什么运行完的myfile.txt是空白的啊?

解决方案 »

  1.   

    加一句:
    out.close();
    看看。
      

  2.   

    String dir = System.getProperty("user.dir");
            System.out.println(dir);
            
            PrintWriter out = new PrintWriter("myfile.txt");
            out.print(dir);
            out.flush() ;
            out.close() ;
      

  3.   

    同求原因,话说他没有关闭,IO资源就会被他一直占用,存在内存中
    但为什么flush以后还是没有,数据还是米有出来呢?
      

  4.   

    大部分默认的文件输出流都会使用nio的缓冲机制,out.print()往流里面添加信息后,如果添加的信息不够缓冲的基本大小,比如1K,那么JVM不会立即将其写入到流的终端去,主要是提升效率。
    如果强制写到流的终端(比如磁盘文件),可以调用out.flush()方法,或者out.close()方法,close方法会在关闭流之前将所有未写的缓冲信息都写到流的终端去,flush的好处是 清空缓冲到终端 后流没有关闭,还可以再往里面写