怎么用Scaner从键盘输入多行数据...然后一起输出.....
                   BufferedWriter f = null;
          boolean a = false;
 try {
   f = new BufferedWriter(new FileWriter("D:/file.text"));
   while (!a){
   Scanner reader = new Scanner(System.in);
   String s1 = null;
              s1 = reader.nextLine();
   if(s1 == "exit") 
    break;
   f.write(s1);   
    }
问题出现在哪里;
   请指点!!!!!谢谢

解决方案 »

  1.   

    s1 == "exit"改为s1.equals("exit")
      

  2.   

    if(s1=="exit")
    你改成if("exit".equals(s1))
    就对了。
      

  3.   


    BufferedWriter f = null;
    boolean a = true;
    try {
    f = new BufferedWriter(new FileWriter("D:/file.text"));
    while (a) {
    Scanner reader = new Scanner(System.in);
    String s1 = null;
    s1 = reader.nextLine();
    System.out.println(s1);
    if (s1.equals("exit")){
    a=false;
    }
    f.write(s1);
    }
    f.flush();
    f.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
      

  4.   

    一二楼都正确。
    s1 = reader.nextLine();
    if(s1 == "exit\n")应该也对吧。没试过。应该就是多个换行符。 
      

  5.   

    恩 String比较不能直接用 ==
    应该用 equals 来进行是否 相同。== 和 equals的意义完全不一样的
      

  6.   

    s1 == "exit"改为s1.equals("exit")
    在java中比较值是用的这种方法
      

  7.   

    equals是比较内存中存储的内容是否相等,地址可以不同,"=="比较的是其引用所指向的对象的地址是否相同,两个概念是不同的
      

  8.   

    s1 == "exit"改为s1.equals("exit")
      

  9.   

    equals是比较内存中存储的内容是否相等,地址可以不同,
    "=="比较的是其引用所指向的对象的地址是否相同,两个概念是不同的
      

  10.   

    4#的编程风格我喜欢,LZ注意了equals与==的区别。
    呵,我也是初学者,共同学习了。