我正在尝试调用命令提示符并在其中记录一些凭据。为此,我采取以下方法:
[False, True, False, True, False, True, True, False]
但是当我运行该程序时,它并没有结束。 Eclipse和cmd运行总是需要显式退出程序。也许我错过了什么。任何帮助将不胜感激。它只适用于所需的东西,但不会退出,我需要集成到我的程序中而不能这样做。
答案 0 :(得分:0)
您不能关闭writer
!
可运行任务中的循环会询问读者是否有更多输入:
while ((line = br.readLine()) != null) { ... }
除非关闭主线程中的writer
,否则始终如此。因此,对于快速解决方案,在最后一次写入操作之后放置一个简单的writer.close()
。
更好的解决方案是使用Java 7中引入的 try-with-resources statement 。您应该打开读者,编写者,扫描仪等,如下所示:
try (Scanner scanner = ...) { ... }
try {Reader reader = ...) { ... }
try {Writer writer = ...) { ... }
这些语句将为您处理结束automatically。作为副作用,它将使您的代码更具可读性。
警告:关闭与Scanner
连接的System.in
也会关闭标准输入,以便在此之后无法再读取任何输入。如果您的代码部分不合适,请不要关闭扫描仪。