flush方法和close方法的区别和字符输出流写数据的其他方法
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("day09_IOAndProperties\\e.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:\\IdeaProjects\\新建文件夹\\k.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号