101java字节流与字符流(AutoCloseable自动关闭支持)

158 阅读1分钟

字节流与字符流(AutoCloseable自动关闭支持)

一、自动关闭概念

从jDK1.7开始追加有一个AutoCloseable接口,实际上这个接口的主要目的是希望可以进行自动的关闭,不过这种处理一般不好用。如果想使用这种关闭处理,那么必须结合try…catch

 

二、相关例子

范例:观察AutoCloseable接口使用

package cn. mldn. demo;

class Message implements AutoCloseable {

public Message() {

System. out . print1n("创建一 条新的消息! ");

}

public void print() {

System. out. println( "www. mldn.cn");

    }

@Override

public void close() throws Exception { //关闭的处理操作

System. out. println(" 【AutoCloseable接口】进行关闭方法的处理! ");

}

}

public class TestAutoDemo {

public static void main(String[] args) throws Exception {

try (Message msg = new Message()){ //必须在try语句里面定义对象

msg.print();

} catch(Exception e){}

}

}

 

 

 

三、使用自动关闭处理之前的操作

这种自动关闭处理是需要针对于try语句进行变更的,从语法的结构上来讲会很不习惯

 

范例:使用自动关闭处理之前的操作

package cn. mldn. demo;

import java. io.File;

import java. io. FileOutputStream;

import java. io. OutputStream;

public class TestDemo {

public static void main(String[ ] args) throws Exception {

File Ifile = new File("d:" + File.separator + "hello.txt");

if (!file . getParentFile().exists()) { //必须保证父目录存在

file. getParentFile(). mkdirs(); //创建目录

}

// 2、 outputstream是-一个抽象类,所以需要通过子类进行实例化,意味着只能够进行文件处理

try (Qutputstream output = new FileOutputstream(file)) {

//3、进行文件的输出处理操作

Strine msp = "www. mldn.cn"// 这个是要求输出的内空

output . write(msg. getBytes(), 03); //将内容变为字节数组catch (Exception e) {

1.  printstackTrace();

}

}

}

 

是否去使用有你自己来决定。