A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈志伟 中级黑马   /  2012-4-12 13:38  /  2036 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码如下:
  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.FileWriter;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;

  6. public class Test {
  7.     public static void main(String[] args) {
  8.             BufferedReader br = null;
  9.               BufferedWriter bw = null;
  10.               String b = null;
  11.               try {
  12.                br = new BufferedReader(new InputStreamReader(System.in));
  13.                bw = new BufferedWriter(new FileWriter("D:/java/222.txt",true));
  14.                while((b=br.readLine())!= null){
  15.                 if(b.equalsIgnoreCase("exit")){
  16.                  break;
  17.                 }
  18.                 System.out.println(b);
  19.                 bw.write(b);
  20.                 bw.newLine();
  21.                }
  22.                bw.flush();
  23.               } catch (IOException e) {
  24.                e.printStackTrace();
  25.               } finally {
  26.                try {
  27.                 bw.close();
  28.                 br.close();
  29.                } catch (IOException e) {
  30.                 e.printStackTrace();
  31.                }
  32.               }
  33.     }
  34. }
复制代码
为什么这段代码要加入   
if(b.equalsIgnoreCase("exit")){
     break;
    }
后,才能把数据写入到4.txt中,否则就是写入不进去?

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

3 个回复

倒序浏览
是这样的:
System.in是从控制台输入,必须要确定一个结束标志
如果没有的话 就会一直停留在控制台输入的地方
另外 你用的是while循环 如果没有标志退出循环你将永远停在其中

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

class Test {
    public static void main(String[] args) {
            BufferedReader br = null;
              BufferedWriter bw = null;
              String b = null;
              try {
               br = new BufferedReader(new InputStreamReader(System.in));
               bw = new BufferedWriter(new FileWriter("i:/tiwen/x.txt",true));
               while((b=br.readLine())!= null){
                if(b.equalsIgnoreCase("exit")){//这里是 比较 当你输入的是exit的时候,程序就退出终止。(这条语句你可以随便改动)
                 continue;      //我现在给你换成continue ,当你输入exit 程序就会继续,你可以再输入。
          }
                System.out.println(b);
                bw.write(b);
                bw.newLine();
               }
               bw.flush();
              } catch (IOException e) {
               e.printStackTrace();
              } finally {
               try {
                bw.close();
                br.close();



               } catch (IOException e) {
                e.printStackTrace();
               }
              }
    }
}


if(b.equalsIgnoreCase("exit")){// 里是 比较 当你输入的是exit的时候
     break//程序跳出停止

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
equalsIgnoreCase方法是判断内容是否相同,并忽略大小写,你如果不加入这句话,那while循环一直在循环,你一直在使用System.in输入,
循环不结束,下面代码不执行,就无法写进去,不知道这样解释你明白没

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马