字节流与字符流(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(), 0, 3); //将内容变为字节数组
} catch (Exception e) {
1. printstackTrace();
}
}
}
是否去使用有你自己来决定。