import java.io.*;
public class TestTransForm2 {
  public static void main(String args[]) throws Exception{
    InputStreamReader isr = 
            new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);FileWriter fw=new FileWriter("d:/fw.txt");
    BufferedWriter bw= new BufferedWriter(fw);
    String s = null;
    try {
      s = br.readLine();
      while(s!=null){
        if(s.equalsIgnoreCase("exit")) break;
        System.out.println(s);
bw.write(s);
        s = br.readLine();
      }
      br.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
} /*想通过键盘向fw文件里写东西,结果fw文件里什么也没有,
*/

解决方案 »

  1.   

    在br.close();前面写上 bw.flush();
    这是因为你没有对数据进行输出到文件的操作。查查API看这个方法就明白了
      

  2.   

    应该写一个while(true)循环 再做一个跳出循环点,不然一次就结束了
      

  3.   

    循环是死的吧 readLine()不就是读一行么?s!=null恒为 true  不要循环 试一下
     
    import java.io.*; 
    public class TestTransForm2 { 
      public static void main(String args[]) throws Exception{ 
        InputStreamReader isr =new InputStreamReader(System.in); 
        BufferedReader br = new BufferedReader(isr); 
        FileWriter fw=new FileWriter("d:/fw.txt"); 
        BufferedWriter bw= new BufferedWriter(fw); 
        String s = null; 
        try { 
          s = br.readLine(); 
    //      while(s!=null){ 
    //        if(s.equalsIgnoreCase("exit")) break; 
    //        System.out.println(s); 
    //        bw.write(s); 
    ////        s = br.readLine(); 
    //      }  
          System.out.println(s);
          bw.write(s); 
          br.close(); 
          bw.close();
        } catch (IOException e) { 
          e.printStackTrace(); 
        } 
      } 

      

  4.   

    在使用流这一块时刻要注意flush,不然,保存在内存中的信息不能及时的输入到文件中,特别是循环的最后一次。
      

  5.   

    如果你写的数据太小的时候,是要用flush一下的,因为数据在缓冲区里,还没写出去
      

  6.   

    flush不是问题。即使不flush,在close之前也会自动进行flush的。
    public class TestTransForm2 {
    public static void main(String args[]) throws Exception {
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr); FileWriter fw = new FileWriter("d:/fw.txt");
    BufferedWriter bw = new BufferedWriter(fw); String s = null;
    try {
    s = br.readLine();
    while (!"exit".equals(s)) {
    if (s.equalsIgnoreCase("exit"))
    break;
    System.out.println(s);
    bw.write(s);
    s = br.readLine();
    }

    br.close();
    bw.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
      

  7.   

    while (!"exit".equals(s)) {
    bw.close();
      

  8.   

    如果按照你的写法,程序无限循环,你只能通过eclipse上的红色小方块强行终止程序。
    这样的话,实际上并没有运行while后面的代码,直接跳出了。
    所以你在while后面写关闭是没用用的。
    另外,你只关闭了读入流,并没有关闭输出流。所以,当然就不会有将内容写入到文件的处理。
    所以我帮你做了上面的调整。
      

  9.   

    好像只用flush 或close都可以吧,哈哈
      

  10.   

    while循环出不来噢  你的条件问题