375flush方法&close方法的区别和376字符输出流写其他数据的方法
flush方法和close方法的区别
flush会输出缓冲区内容,流可以正常使用。
close会输出缓冲区内容并且关闭流。(但是close中是否直接调用flush,甚至是否输出缓冲区内容都需要看具体实现)
/*
flush方法和close方法的区别
- flush :刷新缓冲区,流对象可以继续使用。
- close: 先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。
*/
public class Demo02CloseAndFlush {
public static void main(String[] args) throws IOException {
//1.创建FileWriter对象,构造方法中绑定要写入数据的目的地
FileWriter fw = new FileWriter("e.txt");
//2.使用FileWriter中的方法write,把数据写入到内存缓冲区中(字符转换为字节的过程)
//void write(int c) 写入单个字符。
fw.write(97);
//3.使用FileWriter中的方法flush,把内存缓冲区中的数据,刷新到文件中
fw.flush();
//刷新之后流可以继续使用
fw.write(98);
//4.释放资源(会先把内存缓冲区中的数据刷新到文件中)
fw.close();
//close方法之后流已经关闭了,已经从内存中消失了,流就不能再使用了
fw.write(99);//IOException: Stream closed
}
}
字符输出流写数据的其他方法
void write(char[] cbuf)写入字符数组
abstract void write(char[] cbuf,int off,int len)写入字符数组的某一部分,off数组的开始索引。len写的字符个数
void write(String str)写入字符串
void write(String str,int off,int len)写入字符串的某一部分,off字符串的开始索引,len写的字符个数
public class Demo03Writer {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("file\\a.txt");
char[] cs = {'a','b','c','e'};
//void write(char[] cbuf)写入字符数组
fw.write(cs);
//abstract void write(char[] cbuf,int off,int len)写入字符数组的某一部分,off数组的开始索引。len写的字符个数
fw.write(cs,1,3);
//void write(String str)写入字符串
fw.write("杰瑞!");
// void write(String str,int off,int len)写入字符串的某一部分,off字符串的开始索引,len写的字符个数
fw.write("汤姆!",3,2);
fw.close();
}
}
/*
字符输出流写数据的其他方法
void write(char[] cbuf)
写入字符数组。
abstract void write(char[] cbuf, int off, int len)写入字符数组的某一部分。
void write(String str)
写入字符串。
void write(String str, int off, int len)
写入字符串的某一部分。
*/
public class Demo03Writer {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("D:\\file\\a.txt");
//void write(char[] cbuf) 写入字符数组。
char[] chars= {'a','b','c','d','e'};
fw.write(chars);//abcde
//void write(char[] cbuf, int off, int len)写入字符数组的某一部分。
fw.write(chars,1,3); //abcdebcd
//void write(String str) 写入字符串
fw.write("汤姆");//abcdebcd传智播客
// void write(String str, int off, int len)
fw.write("杰瑞",2,3);//abcdebcd传智播客程序员
fw.close();
}
}

浙公网安备 33010602011771号