如题,JDK7说新增了try-catch 关闭资源的功能,试了一把确实行,关闭资源前,系统会自动把缓存里的数据推送到节点里, 但今天写了个例子 发现不能推送。
public class Test {
public static void main(String[] args) throws IOException {
try (
// 创建一个输出流,输出到who.txt文档
FileOutputStream fos = new FileOutputStream("who.txt");
// 将字节流转换成字符流
OutputStreamWriter osw = new OutputStreamWriter(fos);
// 将字符流包装成字符缓冲流
BufferedWriter bw = new BufferedWriter(osw);
// 创建一个输入流,从who.txt文档到内存中
FileInputStream fis2 = new FileInputStream("who.txt");
// 将字节流转换成字符流
InputStreamReader isr = new InputStreamReader(fis2);
// 将字符流包装成字符缓冲流
BufferedReader bf = new BufferedReader(isr);) {
bw.write("谦谦君子,温润如玉");
bw.flush();// 必须手动推送,不然不能输出!!!
String hasNext = null;
while ((hasNext = bf.readLine()) != null) {
System.out.println(hasNext);
}
} catch (Exception e) {
// TODO: handle exception
}
}
}