「关闭流异常java」java中关闭流的方法

博主:adminadmin 2023-03-17 18:16:10 665

今天给各位分享关闭流异常java的知识,其中也会对java中关闭流的方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

大佬们,关于java IO流关闭的一点疑问,求大佬们帮帮忙?

如果上面没有对流进行手动关闭的话,finally方法中的fis一定不为空

java 中流关闭问题

可以通过BufferedReader 流的形式进行文件流的大卡,之后通过readLine方法获取到流的内容,之后通过close方法关闭流(关闭文件流)。

BufferedReader bre = null;

try {

String file = "D:/test/test.txt";

bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流

while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环

{

System.out.println(str);//原样输出读到的内容

};

备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。

java中IO流操作怎样关闭流

如果 in == null,就说明 in这个引用所指向的对象还没有被创建,自然 in.close()也就不可能被执行,而且会报异常。我是这样想的,程序中 如果你先声明变量

InputStream(或者其他流类型) in = null;

然后执行其他语句,再 in = new 、、、、

在in new之前其他语句出exception,这时流没有被打开,也就无需关闭,如果不判断if(null != in) 硬要关闭in就出exception

另外你的代码按如下写会更合理:

if(null != in){

try{

in.flush();

in.close();

in = null;

}

catch(IOExection e){};

}

Java socket中关闭IO流后,发生什么事

为了方便讲解,我们把DataOutputstream dout = new DataOutputStream(new BufferedOutputStream(mySocket.getOutputStream()));中的dout做为Socket输出流的代言。同 样的,din是输入流的代言。

可以造成dout被关闭的操作有:

1、调用dout.close();或din.close();因为使用这种流关闭,会造成socket被关闭,所以输入输出流都将不可再用。

2、调用socket.close();

3、调用socket.shutdownOutputStream();单方面关闭dout,此时din还可正常使用。

以下,我将对socket中关闭输出流进行3个测试:

输出流关闭测试一:socket关闭吗?

输出流关闭测试二:该流是否可以重新开启?

输出流关闭测试三:输出缓冲区里的数据是丢弃,还是发送?

测试结果如下:

测试一:dout.close();会造成socket被关闭,但socket.shutdownOutputStream()不会。

测试二:不可以,会抛出异常!

测试三:丢弃

转载

Java中的io流关闭问题

如下例子代码:

FileInputStream is = new FileInputStream(".");

BufferedInputStream bis = new BufferedInputStream(is);

bis.close();

从设计模式上看:

java.io.BufferedInputStream是java.io.InputStream的装饰类。

BufferedInputStream装饰一个 InputStream 使之具有缓冲功能,is要关闭只需要调用最终被装饰出的对象的 close()方法即可,因为它最终会调用真正数据源对象的 close()方法。

BufferedInputStream的close方法中对InputStream进行了关闭,下面是jdk中附带的源代码:

java.io.BufferedInputStream的api:

close

public void close()throws IOException 关闭此输入流并释放与该流关联的所有系统资源。

因此,可以只调用外层流的close方法关闭其装饰的内层流,验证例子:

public static void main(String[] args) throws Exception {

FileOutputStream fos = new FileOutputStream("d:\\a.txt");

OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");

BufferedWriter bw = new BufferedWriter(osw);

bw.write("java IO close test");

bw.close();

}

验证ok

java为什么关闭流报错!

你这里有个死循环,正常情况下程序只要进入这个循环里面就出不去,换句话说,根本执行不到19行之后的代码。你的截图里面它的提示已经说得很清楚啦~~都学到IO操作了,这种错误都没遇到过?

关闭流异常java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中关闭流的方法、关闭流异常java的信息别忘了在本站进行查找喔。