java1.7中支持了try-with-resource语法糖。

此语法糖将各种io流的声明初始化放入try后的括号中,在try语句块中不需要显示的写出io流的关闭。系统会自动关闭对应的io流。实现资源的自动回收处理。此语法糖比较方便,但如果不熟悉io流的关闭过程,比较容易出错

一个简单的例子


public class SimpleSocket{
public static void main(String[]args){
try(Socketsocket=newSocket("time.nist.gov",13)){
//Socketsocket=new Socket("time.nist.gov",13);//建立连接
InputStream in=socket.getInputStream();//获取输入流
InputStreamReader inputStreamReader=new InputStreamReader(in,"ASCII");//将字节流转换为字符流默认为平台默认编码
StringBuilder time=new StringBuilder();
for(int c=inputStreamReader.read();c!=-1;c=inputStreamReader.read()){//为-1则表示读到底
time.append((char)c);//追加字符
}
System.out.println(time);
}
catch(Exceptionex){
ex.printStackTrace();
}
}
}