导航:首页 > 编程语言 > java关闭io流

java关闭io流

发布时间:2022-03-31 10:09:36

java关闭IO流的时候Socket也同时关闭

楼主解决了么,我想到一个办法:
服务端:就是每次接收到一个客户端请求以后,都重新启动一个线程用于逻辑处理,处理完毕后关闭该线程会自动关闭。
客户端:每次发送/接收数据都新建一个socket ,发送完/传输完就关闭当前socket

Ⅱ Java中,static代码块创建的IO流需要手动关闭吗

IO 流除了可以手动关闭外,在垃圾回收这个对象的时候也会自动关闭。
但系统进行垃圾回收的时机是不确定的,static 代码块执行完后,不会马上进行回收。在这段时间内,会造成无用的内存及IO等其他资源占用。所以最好还是用完即关。
推荐写在 try 里,try 块执行完自动关闭。

Ⅲ 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中怎么判断一个io流是否已经关闭

try{
inputstream.read();
Syste.out.println("流未关闭");
}cache(Exceptione){
Syste.out.println("流已关闭");
}

Ⅳ 关于java中io流的关闭问题,部分代码,这种情况用不用关闭new FileReader(file)

是的,你的new FileReader(file)是一个匿名对象。

JVM中对于那些打开了没有关闭的IO文件流,会在不再被使用的情况下,等到下次做Full GC的时候把他们全部回收,尽量少使用这种写法。文章来自:http://blog.csdn.net/kongxx/article/details/6405914

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

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

Ⅶ 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还可正常使用。

Ⅷ java输出多个文件时如何避免多次开关io流

既然是输出多个文件,那么输出流肯定是多个。输出完一个文件后关闭对应的流是肯定的。
至于输入流,如果是一个文件的话,可以先用一个输入流将文件读取到内存里,然后这个输入流就用不到了可以关闭了。如果是从多个文件里读取的话,那还是会有多个输入流,所以还是需要多次关闭。

Ⅸ 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 io流的关闭问题。

你BufferedReader是通过fileReader来的,相当于你关闭br后就直接关闭了FileReader,最后建议你把br=null;

和这个相反你可以参考一下rs和con的关系

阅读全文

与java关闭io流相关的资料

热点内容
日常解压视频集锦 浏览:976
如何用单片机显示lc 浏览:101
手机google地球服务器地址 浏览:468
油管解压视频博主 浏览:796
笑果文化的程序员 浏览:922
巨大的命令 浏览:364
阿里云服务器怎么解析 浏览:697
程序员儿子自拍 浏览:962
linuxbacklog 浏览:80
keil编程视频 浏览:246
如何去谷歌下安卓系统 浏览:54
单片机E0H 浏览:327
腾讯云的服务器怎么在手机上管理 浏览:466
一张图表达程序员的心酸 浏览:441
51单片机秒表程序设计 浏览:270
android静态内存 浏览:958
如何添加网络位置共享服务器 浏览:729
人员可以做程序员吗 浏览:481
dc编译器编译框不出现 浏览:639
射手影音播放加密文件 浏览:855