【发布时间】:2018-09-15 11:15:26
【问题描述】:
我在运行此代码时遇到了问题。当我在这个程序中输入数字时,它显示了这个问题。
java.io.IOException: Stream closed
1. See Income 2. Add Menu
3. Delete Menu 4. Back Menu
at java.base/sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:45)
at java.base/sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152)
at java.base/java.io.OutputStreamWriter.flush(OutputStreamWriter.java:254)
at main.addMenu(main.java:181)
at main.adminMenu(main.java:68)
at main.AdminLogin(main.java:51)
at main.main(main.java:32)
at main.main(main.java:18)
我创建的代码是这样的
while (true) {
DecimalFormat format = new DecimalFormat("0.#");
System.out.print("Enter the " + menuName + " Price: $");
Double menuPrice = scanOption.nextDouble();
if (menuPrice < 0){
System.out.println("Price can not below than 0");
} else {
String newMenuPrice = format.format(menuPrice).toString();
pw.append(newMenuPrice);
pw.append('\n');
break;
}
}
pw.close();
pw.flush();
【问题讨论】:
-
我猜你在执行附加操作之前打电话给
.close()。你能提供你称之为 pw.close() 的代码 sn-p 吗? ? -
哦,是的。我忘了移动 pw.close()。但我仍然遇到同样的问题。
-
@KevinJulianto 你能更新你的代码吗,你把
pw.close()放在哪里了?它应该在while循环之后。 -
@Bentaye我已经更新了上面的代码和新的错误
-
请正确格式化和缩进您的代码,以便您能够理解,包括您自己。
标签: java string while-loop double java.util.scanner