输入双精度时Java中出现错误IOException
我运行此代码时遇到问题。当我在这个程序中输入数字时,它显示了这个问题输入双精度时Java中出现错误IOException,java,string,while-loop,double,java.util.scanner,Java,String,While Loop,Double,Java.util.scanner,我运行此代码时遇到问题。当我在这个程序中输入数字时,它显示了这个问题 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
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();
while(true){
DecimalFormat=新的DecimalFormat(“0.#”);
System.out.print(“输入“+menuName+”价格:$”;
Double menuPrice=scanpoption.nextDouble();
如果(菜单<0){
系统输出打印项次(“价格不能低于0”);
}否则{
字符串newMenuPrice=format.format(menuPrice.toString();
附加(newMenuPrice);
pw.append('\n');
打破
}
}
关闭();
pw.flush();
pw
。移动pw
,如果您要关闭它,这是多余的,如果您已经关闭了它,这是错误的。移除我猜您在执行追加操作之前调用了
.close()
。您能提供您称之为pw.close()的代码段吗?哦,是的。我忘了移动pw.close()。但是我还是遇到了同样的问题。@KevinJulianto你能更新你的代码吗,你把pw.close()
放在哪里了?它应该在while循环之后。@BentayeI已经更新了上面的代码和新错误。请正确格式化和缩进您的代码,以便理解,包括您自己。