输入double时Java中的IOException错误

时间:2018-04-05 15:02:58

标签: 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(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();

1 个答案:

答案 0 :(得分:0)

  1. 您正在循环中关闭pw。移动。
  2. 你正在冲洗pw,如果你要关闭它,这是多余的,如果你已经关闭它,那就错了,就像你一样。删除。