试了一下,没有写入啊  public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new FileWriter("c:/sysin.txt"));
String str = "Test";
 while (null != (str = br.readLine())) {
if (!"exit".equals(str)) {
bw.write(str,0,str.length());
System.out.println("Write : "+str);
} else {
System.out.println("Exit Success!");
System.exit(0);
}
}
br.close();
bw.close();

}

解决方案 »

  1.   

    你一直处于readline的状态吧?
      

  2.   

    而且还没有flush就退出了数据都在缓冲区
      

  3.   

    在关闭流的时候它会自动flush啊
    BufferedWriter close()的源码public void close() throws IOException {
    synchronized (lock) {
        if (out == null) {
    return;
        }
        try {
            flushBuffer();
        } finally {
            out.close();
            out = null;
            cb = null;
        }
    }
      

  4.   

    在 bw.write(str,0,str.length()); 下面加上 bw.flush();就可以了
    每次都flush 缓冲区不就没作用了吗?
      

  5.   

    你用的是buffered版本的I/O,所以要flush一下才能真正写入文件
      

  6.   

    System.exit(0);根本就不会执行到xx.close()
      

  7.   


    public static void main(String[] args) throws Exception {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new FileWriter("c:/sysin.txt"));
            String str = "Test";
             while (null != (str = br.readLine())) {
                if (!"exit".equals(str)) {
                    bw.write(str,0,str.length());
                    System.out.println("Write : "+str);
                } else {
                       bw.flush();
                       br.close();
                       bw.close();
                    System.out.println("Exit Success!");
                    System.exit(0);
                }
            }
            br.close();
            bw.close();
            
        }