最基础的IO代码,问题就一个,不用看完代码,请看下面的注释。
import java.io.*;public class BasicFileOutput {
  static String file = "BasicFileOutput.out";
  public static void main(String[] args)
  throws IOException {
    BufferedReader in = new BufferedReader(
      new StringReader(
        BufferedInputFile.read("BasicFileOutput.java")));
    PrintWriter out = new PrintWriter(
      new BufferedWriter(new FileWriter(file)));
    int lineCount = 1;
    String s;
    while((s = in.readLine()) != null )
      out.println(lineCount++ + ": " + s);  //这里PrintWriter调用了println
    out.close();
    System.out.println(BufferedInputFile.read(file)); //那么这里为什么还要显示的调用 println 呢?而且注释掉
                           //这句话还不能输出。难道 PrintWriter 的 println 不是打印?可是JDK上看说是打印啊.
  }
}

解决方案 »

  1.   

    你看看你的out是什么?
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file)));这个是什么?是对应一个文件的printwriter,那么它的打印会打印在哪?当然是在文件里面了而System.out是什么?它是控制台 的打印器,当然打印在控制台了
      

  2.   

    out.println(lineCount++ + ": " + s);
    这句话的out不是屏幕,而是文件。所以这里的println是往文件里面写入。
    System.out.println(BufferedInputFile.read(file));
    这里的out才是屏幕,这里的println才是往屏幕上输出。
      

  3.   

    你代码编译通过了??、BufferedInputFile是什么能解释下吗?谢谢~
      

  4.   

    谢谢各位的帮忙。
    回答4楼的,BufferedInputFile 是另外一个类,将输入流转成StringBuild的。