1. 程式人生 > >JDK1.7新特性--自動關閉類

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