【问题标题】:Error IOException in Java while input double输入双精度时Java中的错误IOException
【发布时间】: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


【解决方案1】:
  1. 您正在循环内关闭pw。移动。
  2. 您正在刷新pw,如果您要关闭它,这是多余的,如果您已经关闭它,这是错误的,就像您一样。移除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2015-11-16
    • 2021-07-01
    相关资源
    最近更新 更多