天天看點

JDK1.7新特性--自動關閉類

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);
		}
	}
}
           

繼續閱讀