题目是利用缓冲流 输入一行一行的字符 把他们写入文件write.txt中 直到输入quit时结束。import java.io.*;
import java.util.Scanner;public class write{
public static void main(String[] args) throws java.io.IOException {
File file = new File("write.txt");
Scanner scan1 = new Scanner(System.in);
while(true)
{
String scan = scan1.next();
if(scan1.next() == "quit")
break;
FileWriter fw = new FileWriter(file);
BufferedWriter bufw = new BufferedWriter(fw);
bufw.write(scan);
bufw.close();
fw.close();
}
}
}
但是运行后它只能出来quit一行。。

解决方案 »

  1.   

    import java.io.*;
    import java.util.Scanner;public class write{
    public static void main(String[] args) throws java.io.IOException {
    File file = new File("write.txt");
    Scanner scan1 = new Scanner(System.in);
    while(true)
    {
    if(scan1.next() == "quit")
    break;
    else
    {
    String scan = scan1.next();
    FileWriter fw = new FileWriter(file);
    BufferedWriter bufw = new BufferedWriter(fw);
    bufw.write(scan);
    bufw.close();
    fw.close();
    }
    }
    }
    }改了下程序 但是好像解决不了循环的问题 只记录下了第一行就结束了
      

  2.   

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.util.Scanner;public class Write {
    public static void main(String[] args) throws java.io.IOException {
    File file = new File("write.txt");
    FileWriter fw = new FileWriter(file);
    BufferedWriter bufw = new BufferedWriter(fw);
    Scanner scan1 = new Scanner(System.in);
    while (true) {
    String scan = scan1.next();
    System.out.println(scan);
    if ("quit".equals(scan)){
    break;
    }else{
    bufw.write(scan);
    bufw.write("\n");
    }
    }
    bufw.close();
    fw.close();
    }
    }
      

  3.   

    FileWriter fw = new FileWriter(file);
     BufferedWriter bufw = new BufferedWriter(fw);
    这个要放在最外面,不然每次都会重新创建一个,就把原来的清除了
      

  4.   

    字符串比较 用equals啊
      

  5.   

    FileWriter fw = new FileWriter(file);
     BufferedWriter bufw = new BufferedWriter(fw);
    这两行代码,记得放在try()里面  ,这样做就不必自己关闭流了。不过这是1.7JDK的特性如果输入为quit则结束,这个还是很好实现的吧。
      

  6.   

     //8
     File file8=new File("E:\\text\\test8.txt");
     if(!file8.exists()){
     file8.mkdirs();
     }
     Scanner  sc=new Scanner (System.in);
     BufferedWriter bw=new BufferedWriter(new FileWriter(file8));
     while(true){
     String scan=sc.next();
     if("qiut".equals(scan)){
     break;
     }else{
     bw.write(scan+"\r\n");
     }
     }
     bw.close();//
      

  7.   

    import java.io.*;
    import java.util.Scanner;public class Write{
    public static void main(String[] args) throws java.io.IOException {
    File file = new File("C://write.txt");
    BufferedWriter bw = null;
    FileWriter fw = null;
    while(true)
    {
        fw = new FileWriter(file,true);
    @SuppressWarnings("resource")
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一段话:");
    String scan = sc.next();
    if("quit".equals(scan))
        break;
    bw = new BufferedWriter(fw);
    bw.newLine();
    bw.write(scan);
    bw.close();
    fw.close();
    }
    }
    }
    这样就好使了  file后那个参数加个true就是说后面写的数据写到文件末尾处  不是开始处了 就不会覆盖了
      

  8.   

    要有if else 语句才能操作你的那个语句。