黑马程序员技术交流社区

标题: 字符流 [打印本页]

作者: 殷士剑    时间: 2012-11-23 00:01
标题: 字符流
本帖最后由 殷士剑 于 2012-11-23 12:40 编辑
  1. import java.io.BufferedReader;
  2. import java.io.FileWriter;
  3. import java.io.InputStreamReader;
  4. public class Test6 {
  5. /**
  6. * 从键盘输入一些字,然后被保存到一个指定的目录下,比如一个 demo.txt中
  7. */
  8. public static void main(String[] args) throws Exception {
  9. // TODO Auto-generated method stub
  10. BufferedReader bufferedReader = new BufferedReader(
  11. new InputStreamReader(System.in));
  12. FileWriter out = new FileWriter("e:\\test\\log.txt");
  13. char[] buffer = new char[1024];
  14. int len = 0;
  15. while ((len = bufferedReader.read(buffer)) != -1) {
  16. out.write(buffer, 0, len);
  17. }
  18. bufferedReader.close();
  19. out.close();

  20. }

  21. }
复制代码
从控制台上输入后,在log.txt中没内容,我的代码错了吗?
作者: 坚持远方    时间: 2012-11-23 00:18
有数据,你的代码没有设置结束标记,所以当你输入完数据之后,再按个ctrl+c结束一下,你再看一下你的文件
作者: 张学永    时间: 2012-11-23 00:20
你没有定义键盘录入的结束标记,而键盘录入是阻塞式方法,所以当你停止录入后,程序并没有停止,read()方法等待,out.close()没有执行,就不会有刷新。也就不会有数据。
作者: 徐军涛    时间: 2012-11-23 00:22
因为,你用到了System.in这个键盘录入,是需要在读写while 循环里面定义一个结束标记,来确定录入完毕
作者: 殷士剑    时间: 2012-11-23 12:39
谢谢各位黑马!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2