【发布时间】:2013-08-06 14:23:36
【问题描述】:
我想实现以下目标:
BufferedInputStream is = new BufferedInputStream(System.in);
int c = 0;
while((c=is.read())!=-1)
Files.copy(is, path3, StandardCopyOption.REPLACE_EXISTING);
然而,它永远卡在等待 System.in 中。 有什么解决方法吗?
提前致谢。
【问题讨论】:
-
它不能在构造函数处阻塞。你的意思是
is.read()? -
阻止尝试从控制台读取..您输入任何输入了吗?
-
您是否在控制台按
return?在此之前,System.in看不到任何输入。 -
如果您想在每次按键时做出反应,
System.in不适合您。您需要 AWT 事件。 -
您是在控制台输入 ctrl/z 还是 ctrl/d(取决于系统)来提供 EOS?您的代码在得到一个之前不会终止。但是,您的代码无论如何都没有意义。您正在从 System.in 中读取一个字符,将其丢弃,然后复制整个流,然后重复直到读取的字符为 -1。这里的实际目标是什么?
标签: java io nio bufferedinputstream