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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 smile_joe 于 2013-4-25 21:05 编辑

package cn.joe.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test12 {
        public static void main(String[] args) throws IOException {
//                创建键盘输入流
                System.out.println("请输入:");
//                1.7新特性应用
                try(
//                InputStreamReader isr=new InputStreamReader(System.in);
                        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                        BufferedWriter bw=new BufferedWriter(new FileWriter("text.txt"));)
                {
//                        String s;
//                        while循环,遇到quit跳出
                        while(true) {
                                String s=br.readLine();
                                if("quit".equals(s)) {
                                        break;
                                }
//                                写入,换行
                                bw.write(s);
                                bw.newLine();
                        }
                }
        }
}
//1.请输入:
//        成绩,99                                                                                                                                                                                            
//        quit---输入正常退出-写入"text.txt"得到: chengjich成绩,99               
//2.请输入:
//        成绩,99,99--这样输入
//        quit---ok
//3.请输入:
//        中国,你好
//        ok-写入"text.txt"得到: zhongguoz中国,你好
//4.请输入:
//成绩,99,99,99--这样输入
//quit----换行第一次输入,跳不出
//quit--------------按到第二次quit才能跳出?运行该程序再次输入相同的数据,就正常第一次"quit"跳出
//5.输入:李鹏,99,99,99--得到下面,同样是第二次quit才跳出,运行该程序再次输入相同的数据,就正常第一次"quit"跳出
//lipeng李鹏,99,99,99
//lipenlipeliplilquit
//6.输入:小李,99,98,99---得到下面,同样是第二次quit才跳出,运行该程序再次输入相同的数据,就正常第一次"quit"跳出
//xiaoxi小李,99,98,99
//axixwwawquit

//请问为什么1.3.5.6得到的结果前面有那些英文,那英文又代表了什么?---这个我还与到几次,请一定尽快帮忙说说
//请问4.5.6在输入数据时,第二行quit没效果,第三行才跳出?运行该程序再次输入相同的数据,就正常第一次"quit"跳出?
//这是bug 还是我的程序不严谨造成的

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1

查看全部评分

7 个回复

倒序浏览
你的程序是没问题的,出现英文的问题可能是你的输入法导致的。
控制台输出本来就有些BUG,有时候出现控制不能输入的问题,需要重新运行程序。
程序的健壮性不好,要养成关闭资源的好习惯啊!~
代码:
  1. package com.itcast.itheima;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;

  7. public class IOTest {
  8.         public static void main(String[] args) throws IOException {
  9. //                创建键盘输入流
  10.                 System.out.println("请输入:");
  11.                 BufferedReader br = null;
  12.                 BufferedWriter bw = null;
  13. //                1.7新特性应用
  14.                 try{
  15. //                InputStreamReader isr=new InputStreamReader(System.in);
  16.                                br=new BufferedReader(new InputStreamReader(System.in));
  17.                         bw=new BufferedWriter(new FileWriter("d:\\1.txt"));
  18.                
  19. //                        String s;
  20. //                        while循环,遇到quit跳出
  21.                         while(true) {
  22.                                 String s=br.readLine();
  23.                                 if("quit".equals(s)) {
  24.                                         break;
  25.                                 }
  26. //                                写入,换行
  27.                                 bw.write(s);
  28.                                 bw.newLine();
  29.                                 bw.flush();
  30.                         }
  31.                 }catch(Exception e){
  32.                         e.printStackTrace();
  33.                 }finally{
  34.                        
  35.                         if(bw != null){
  36.                                 bw.close();
  37.                         }
  38.                         if(br != null){
  39.                                 br.close();
  40.                         }
  41.                 }
  42.         }
  43. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
HM汪磊 + 1

查看全部评分

回复 使用道具 举报
shenqi 发表于 2013-4-24 17:06
你的程序是没问题的,出现英文的问题可能是你的输入法导致的。
控制台输出本来就有些BUG,有时候出现控制不 ...

你的这个代码编辑器是怎么弄出来的?
回复 使用道具 举报
本帖最后由 shenqi 于 2013-4-24 18:27 编辑
xiaoHei 发表于 2013-4-24 18:20
你的这个代码编辑器是怎么弄出来的?

留言框上的工具栏就有,该图标为<> 符号 如果实在不知道你在代码前后添加:
  1. [code]   代码..   
复制代码
[/code]
回复 使用道具 举报
shenqi 发表于 2013-4-24 18:24
留言框上的工具栏就有,该图标为 符号 如果实在不知道你在代码前后添加:[/code]
...

嗯哪  谢谢啊
回复 使用道具 举报
你在输入中文时鼠标光标不会自动换行,雪要手动换行。
     在输入英文时控制台光标会自动换行。
输入中文时:先会把拼音敲出来 ,敲空格后才会打出汉字,这导致read()方法会全部读取出来,

QQ截图20130424183915.png (399 Bytes, 下载次数: 14)

QQ截图20130424183915.png
回复 使用道具 举报
shenqi 发表于 2013-4-24 17:06
你的程序是没问题的,出现英文的问题可能是你的输入法导致的。
控制台输出本来就有些BUG,有时候出现控制不 ...

请问//请问4.5.6在输入数据时,第二行quit没效果,第三行才跳出?运行该程序再次输入相同的数据,就正常第一次"quit"跳出?
回复 使用道具 举报
shenqi 发表于 2013-4-24 17:06
你的程序是没问题的,出现英文的问题可能是你的输入法导致的。
控制台输出本来就有些BUG,有时候出现控制不 ...

我这里的流已关闭,上面写道1.7新特性  try( ) {  }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马