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