【JAVA】java.io.IOException: Stream closed问题!赶ddl!急!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【JAVA】java.io.IOException: Stream closed问题!赶ddl!急!相关的知识,希望对你有一定的参考价值。

做进销存的增删改查,这是其中的Add,运行的时候报错如下
============以下是报错================
Exception in thread "main" java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at invoicing.Invoicing.Add(Invoicing.java:122)
at invoicing.Invoicing.main(Invoicing.java:60)
=============以上是报错=============
=============以下是对应的代码==========
public static void Add() throws IOException

//获取输入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入商品编号:");
id = br.readLine();
br.close(); //这一行就是122行
==================================

说明一下,代码前面已经定义过了
public static String id; //----商品编号

请问为什么会出现这样的情况呢?在下初学java,今天下午被这个问题困扰了超级久。。
抱歉打错了。。122行是 id = br.readLine();

最好贴一下全部代码

java.io.IOException: Stream closed

说的是流已经被关闭

这种异常是说你已经close了,但是却还使用那一个流

比如下面两句就会产生这种错误

br.close();
br.readLine();//流已经被关闭却依然使用它读数据

这是初步判断,没有全码我也不知道对不对
参考技术A 你要把你全部代码贴出来,单这一段并没有错误,错误都是连带的追问

我这里网络有点渣图片传不上来。。百度字数有限制。。有什么办法私信你吗。。打扰了很抱歉!!

追答

我给你留个邮箱吧,把问题发进去,但我工作比较忙,未必会回复的很及时,我得闲了就立刻回复你346635081@qq.com,顺便问一下,你是用像Eclipse这样的编辑工具编辑的吗,异常里报Unknown Source有可能是在编译class文件的时候缺少参数,导致编译之后报错无法定位到具体代码

解决Caused by: java.io.IOException: java.io.IOException: error=12, Cannot allocate memory

最近公司一台线上服务器的hbase的regionserver挂掉之后起不起来报错OOM。

  1. 这台机器同时装有cassandra,于是停掉cassandra释放内存,重启regionserver失败,同时cassandra再尝试启动也报错Caused by: java.io.IOException: java.io.IOException: error=12, Cannot allocate memory 
  2. ps -ef发现有很多类似/bin/bash /opt/cloudera-manager/cm-5.3.0/lib64/cmf/service/hbase/hbase.sh regionserver start的进程在运行,全部杀掉后依然无法启动regionserver和cassandra
  3. 重启机器依然无效
  4. 参考https://stackoverflow.com/questions/1124771/how-to-solve-java-io-ioexception-error-12-cannot-allocate-memory-calling-run后,使用echo 0 > /proc/sys/vm/overcommit_memory解决问题
后续依然要加强对内存管理的学习

以上是关于【JAVA】java.io.IOException: Stream closed问题!赶ddl!急!的主要内容,如果未能解决你的问题,请参考以下文章

java.io.IOException: Connection reset by peer和java.io.IOException: Connection timed out。Socket

java.io.IOException: toDerInputStream 拒绝标签类型 77

java.io.IOException:系统找不到指定的路径

任务 ':app:compileDebugKotlin' java.io.IOException 执行失败

android java.io.IOException:传输端点未连接

java.io.IOException:Java 中的权限被拒绝