兩種關閉數據流的方式以及注意事項


  

  雖然在java程序在結束時自動關閉所有打開的流,但是當使用完流后,顯示的關閉所有打開的流仍然是一個好習慣。一個被打開的流有可能會用盡系統的資源,這取決於平台和實現。如果沒有將流關閉,另一個程序試圖打開另一個流時,可能會得到不需要的資源。

   從JDK1.7后,有兩種關閉數據流的方法,分別如下:

  1)    使用close()顯式地關閉流,部分代碼如下:
        FileInputStream in=null;//創建文件輸入流
        try {
            in=new FileInputStream("word.txt");//讀取文件
            try {
                in.read();//讀取單個字節
                System.out.println(in.read());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }//
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finally {
            if(in!=null) {//如果文件輸入流不是null
                try {
                    in.close();//關閉文件輸入流
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

 

2)使用try語句自動關閉流,部分代碼如下所示:
    try(FileInputStream in=new FileInputStream("word.txt");){//讀取文件
        in.read();//讀取一個字節
    }catch {(IOException e1){
        e1.printStackTrace();
    }//try..catch語句結束后自動關閉in
   
                很明顯第二種要優於第一種,但是第二種方法無法用於1.7版本以下的java環境。兩種方法關閉的效果是相同的,自行靈活選用其一即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM