Java “关于InputStream的查询”;系统。在“中”;
我希望实现以下目标:Java “关于InputStream的查询”;系统。在“中”;,java,io,nio,bufferedinputstream,Java,Io,Nio,Bufferedinputstream,我希望实现以下目标: BufferedInputStream is = new BufferedInputStream(System.in); int c = 0; while((c=is.read())!=-1) Files.copy(is, path3, StandardCopyOption.REPLACE_EXISTING); 无论它被困在等待系统中,永远。。 有解决办法吗 提前感谢。如果您试图停止阅读新行或回车或流结束,您可以尝试- do
BufferedInputStream is = new BufferedInputStream(System.in);
int c = 0;
while((c=is.read())!=-1)
Files.copy(is, path3, StandardCopyOption.REPLACE_EXISTING);
无论它被困在等待系统中,永远。。
有解决办法吗
提前感谢。如果您试图停止阅读新行或回车或流结束,您可以尝试-
do {
try {
c = is.read();
// Do something
} catch (IOException e) {
e.printStackTrace();
}
} while ((c != -1) & (c != '\n') & (c != '\r'));
它不能在构造函数处阻塞。你是说at
是.read()
?它正在阻止从控制台读取。。您是否键入任何输入?是否在控制台上按了return
?在此之前,System.in
看不到任何输入。如果您想在每次按键时做出反应,System.in
是不可取的。您需要AWT事件。是否在控制台键入ctrl/z或ctrl/d(系统相关)以提供EOS?您的代码在得到一个之前不会终止。然而,您的代码无论如何都没有意义。您正在从System.in读取一个字符,将其丢弃,然后复制整个流,然后重复,直到读取的字符为-1。这里的实际目的是什么?