在api中对PrintStream是这样描述的:
PrintStream(OutputStream out) 
          创建新的打印流。 
PrintStream(OutputStream out, boolean autoFlush) 
          创建新的打印流。
PrintStream(String fileName) 
          创建具有指定文件名称且不带自动行刷新的新打印流。 
那么按说这个是没有自动刷新功能的,也就是说要用flush方法才能把内存中的数据输出到文档中,但是我用代码实验了下:
PrintStream ps = new PrintStream(new FileOutputStream(new File("d:" + File.separator + "test.txt"))) ;
ps.print("hello ") ;
这个是可以正常将hello输出到test.txt文件中,但是我没有用flush()啊,为什么可以直接输出?

解决方案 »

  1.   

    你看下 API:为了自动刷新,可以创建一个 PrintStream;这意味着可在写入 byte 数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个换行符或字节 ('\n')。 
      

  2.   

    写入 byte 数组之后自动调用 flush 方法
      

  3.   

    还有一个不太明白的问题,有了printwriter和printstream后,用这两个就能搞定大多数问题,那么outputstream和writer是用来解决哪类问题的呢?
    可能问的比较幼稚,新手 见谅~
      

  4.   

    outputstrea是printstream的父类
    writer是PrintWriter的父类
      

  5.   

    outputStream 和Writer是字节流
    printWriter 和printStream是字符流
      

  6.   

    printWriter比较自动化 甚至可以创建文件夹