这是较大的图形程序(特别是 JavaPlot)的一部分。简而言之,我会尝试绘制一些图表;该图将出现在
out.write(comms);
但是一旦它击中就关闭
out.close()
我知道您需要关闭 OutputStreamWriter,因此我没有删除该行,而是创建了一个 Scanner,它一直等到用户按下“Q”,然后程序正常继续,关闭图形、OutputStreamWriter 和 Scanner
OutputStreamWriter out = new OutputStreamWriter(proc.getOutputStream());
out.write(comms);
out.flush();
//added from here
//waiting until input is given
Scanner timeKiller = new Scanner(System.in);
String check = timeKiller.nextLine();
if(check != "q"){
check = timeKiller.nextLine(); //<---waiting here.
}
timeKiller.close();
//to here
out.close();
我在做什么危险吗?如果有人通过关闭窗口来关闭图表,这不会杀死程序,对吗?这不会导致内存泄漏(对吗?),但是如果进程仍在运行并且他们多次运行该程序,它最终将开始成为问题。我怎样才能解决这个问题?就在我的脑海中,也许在窗口关闭时向窗口添加一个监听器,它会中断循环?还是我弄错了,这根本不是问题?