導航:首頁 > 編程語言 > java關閉文件流

java關閉文件流

發布時間:2023-05-30 21:17:51

java程序能否強制關閉某文件的流

只有知道文件句柄才能關閉,所以你必須把打開的文件流都記在某個數組里,然後循環關閉即可

② 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;怎麼關閉流文件

最好聲明在一個特定的作用域裡面,這樣作用域一到自己就釋放掉了,也就不存在什麼你來關閉了,因為很多內置類析構函數都是有很完整的系統垃圾回收機制。不要做重復的事,當然如果你需要關閉之後在打開,你可以使用手動關閉。

④ Java:這里的兩個流都需要關閉嗎

ois.close();這個一定要,每次構造ObjectInputStream都先迴向流中讀那4個標志位元組,你只new 了一次ObjectInputStream,所以只向流中讀一次那4個位元組,所以讀完第一個對象後,流中接下來的4個位元組是標志位元組,不是對象的序列化信息,所以用再用readObject()會出現StreamCorruptedException異常。

is.close();也要,文件流一直打開著。
哦你說關閉ois的時候會將is也一同關閉嗎?不會的,剛好理解反了。

先有了文件流,打開了文件,然後在這個基礎上輸入輸出流,你光把輸入輸出關了,文件流又沒變,只不過就是你開著文件不去讀寫罷了,流還是在的。都要關閉的。

⑤ java io流對文件的增刪改查

可以通過BufferedReader 流的形式進行流讀取,之後通過readLine方法獲取到的內容,之後通過if判斷來實現在某些特定位置的查找、增加、刪除、修改操作。
舉例:
BufferedReader bre = null;
OutputStreamWriter pw = null;//定義一個流
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
pw = new OutputStreamWriter(new FileOutputStream(「D:/test.txt」),"GBK");//確認流的輸出文件和編碼格式,此過程創建了「test.txt」實例
while ((str = bre.readLine())!= null) // 判斷最後一行不存在,為空結束循環
{
if(str.indexOf("排除")<0){//判斷是否需要舍棄
pw.write(str);//將要寫入文件的內容,可以多次write
}
}
bre.close();//關閉流
pw.close();//關閉流
解釋:以上方法是實現的刪除,if中的條件改變下,即可實現其餘的功能。
備註:文件流用完之後必須及時通過close方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。

⑥ java 文件流 文件操作疑惑 為什麼運行程序後h:\\3.txt為0kb 就是為什麼沒有寫入文件

在關閉流之前,要加入os.flush()方法,如下代碼。原因是,FileWriter是緩沖字元流,對塵彎於緩沖流遲信,是這樣執行的。當緩沖區滿了,就寫一次,還有就碼兄輪是在調用flush方法寫一次,所以你在關閉的時候,如果緩沖區沒滿,是沒寫的,你不flush,那最終關閉了也沒有數據寫進文件。確保所有數據都寫入了的辦法就是在關閉流之前調用一次flush方法。
try {
os.flush();
os.close();
} catch (Exception e) {
System.out.println(e);
}

⑦ 關於java中io流的關閉問題,部分代碼,這種情況用不用關閉new FileReader(file)

是的,你的new FileReader(file)是一個匿名對象。

JVM中對於那些打開了沒有關閉的IO文件流,會在不再被使用的情況下,等到下次做Full GC的時候把他們全部回收,盡量少使用這種寫法。文章來自:http://blog.csdn.net/kongxx/article/details/6405914

⑧ 為什麼在java中打開流後一定要關閉流好像關不關沒有不同,程序的結果都是一樣的。。。

這跟資源的佔用有關
比如你將一個100MB的word文檔轉換成流,然後進行分析存儲到資料庫一樣
它是將這100MB的東西讀到內存,然後進行處理,如果你在使用的時候不關閉
那麼java就認為你是一直在使用
而不進行垃圾回收
那麼就占你100MB的內存
這樣有可能導致內存溢出

⑨ JAVA中文件流和字元流操作完成後,如不關閉,會出現什麼情況

字元流不關閉是沒關系的 垃圾收集到最後會自動為你回收
只不過要多佔用內存一會而已
但如果文件流布關閉(尤其是獨占模式下)
則會出現異常 對外的程序也打不開這個文件
因此要記得關閉它

閱讀全文

與java關閉文件流相關的資料

熱點內容
文件加密了為啥發不出去了 瀏覽:457
單片機調節馬達 瀏覽:741
鏡花pdf 瀏覽:610
廣西民族大學app忘記密碼怎麼辦 瀏覽:374
學生伺服器是什麼意思 瀏覽:533
如何下載快切app 瀏覽:723
如何將電腦c盤文件加密 瀏覽:886
嵌入式為什麼linux 瀏覽:553
c語言編譯器屬於系統軟體 瀏覽:725
android如何斷點調試 瀏覽:722
圖解韓語pdf 瀏覽:302
sas查各文件夾空間大小 瀏覽:454
python腳本檢查埠 瀏覽:960
催眠解壓視頻泡沫 瀏覽:309
雲伺服器部署系統 瀏覽:879
惡意加密別人的文件犯法 瀏覽:833
漢語語法pdf 瀏覽:158
詞法分析編譯原理論文 瀏覽:271
電腦文件夾還原方法 瀏覽:532
安卓包如何成為文檔 瀏覽:948