JDK1.7新特性--自動關閉類
阿新 • • 發佈:2019-02-12
JDK在1.7之後出現了自動關閉類的功能,該功能的出現為各種關閉資源提供了相當大的幫助,這裡我們談一談自動關閉類。
JDK1.7之後出現了一個重要的介面,以及改造了一個重要的方法結構:
1、AutoCloseable自動關閉介面
2、try(){}--catch{}--finally{}
相應的一些資源也實現了該介面,如preparedStatement、Connection、InputStream、outputStream等等資源介面。
介面的實現類要重寫close()方法,將要關閉的資源定義在try()中,這樣當程式執行完畢之後,資源將會自動關閉。自定義類如果要進行自動關閉,只需要實現AutoCloseable介面重寫close()方法即可,
同時也只有實現了AutoCloseable接口才能將,自定義類放入到try()塊中,否則編譯不能通過,舉例說明
程式碼如下:
<pre name="code" class="java">class ReadTxt extends AutoClassable { @Override public void close() throws Exception { System.out.println("ReadTxt close"); } public String readTextValue(String path){ StringBuffer sb = new StringBuffer(); try(BufferedReader br = new BufferedReader(new FileReader(path))){ int line; while((line = br.read())!=-1){ sb.append(br.readLine()+"\n") } } return sb.toString(); } } class MainTest { public static void main(String[] args) { try (ReadTxt rt = new ReadTxt()) { String line = rt.readTextValue("G:\\學習文件\\test.txt"); System.out.println(line); } } }