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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王海龙 中级黑马   /  2012-12-22 13:13  /  1810 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. 功能描述:从键盘输入一串字符,直到输入回车符结束,然后从屏幕输出并将其存入a.txt文件中。
  2. 输入使用System.in.read();输出使用System.out.write();   


  3. public static void main(String[] args){
  4.         int ch;
  5.         try {
  6.             FileOutputStream fos = new FileOutputStream("a.txt");
  7.             System.out.print("请输入(回车符结束):");

  8.             while((ch=System.in.read())!='\n'){

  9. //下面这两行为什么ch明明是int类型的数据,控制台和a.txt中可以显示输入的字符和汉字?

  10.                 System.out.write(ch);
  11.                 fos.write(ch);



  12.             }
  13. //还有下面这行代码中write的参数不应该是int类型的吗,怎么可以写回车?
  14.             System.out.write('\n');
  15.             System.out.println("输出到文件完毕,请查收!");
  16.         }catch (IOException e) {
  17.             System.out.println(e.toString());
  18.         }   
  19.     }
复制代码

评分

参与人数 1技术分 +1 收起 理由
邵天强 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
它读的时候是在查码表,而码表里存的都是数字
回复 使用道具 举报
这个简单
1、System.in是一个InputStream类,他有一个方法read();
2、也就是说System.in.read()返回的是下一个字节数据,也就是8位二进制位
3、System.out.write()是PrintWriter的write()方法
4、这个write方法,可以接受参数为整型变量的参数。也就是write(int ch),当打印出来,因为是把ch,去对照码表,取出来的是字符。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马