導航:首頁 > 編程語言 > 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流相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:61
Windows常用c編譯器 瀏覽:778
關於改善國家網路安全的行政命令 瀏覽:833
安卓如何下載網易荒野pc服 瀏覽:654
javainetaddress 瀏覽:104
蘋果4s固件下載完了怎麼解壓 瀏覽:1002
命令zpa 瀏覽:285
python編譯器小程序 瀏覽:944
在app上看視頻怎麼光線調暗 瀏覽:540
可以中文解壓的解壓軟體 瀏覽:592
安卓卸載組件應用怎麼安裝 瀏覽:913
使用面向對象編程的方式 瀏覽:339
程序員項目經理的年終總結範文 瀏覽:929
內衣的加密設計用來幹嘛的 瀏覽:432
淮安數據加密 瀏覽:292
魔高一丈指標源碼 瀏覽:982
松下php研究所 瀏覽:168
c回調java 瀏覽:399
夢幻端游長安地圖互通源碼 瀏覽:745
電腦本地文件如何上傳伺服器 瀏覽:313