字符输出流的基本使用_写出单个字符到文件与flush方法和close方法的区别
字符输出流的基本使用_写出单个字符到文件
package DemoOutputStream; import java.io.FileWriter; import java.io.IOException; /* java.io.writer :字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类 共性的成员方法: - void write(int c)写入单个字符。 - 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写的字符个数。- void flush()刷新该流的缓冲。 - void close()关闭此流,但要先刷新它。 java.io.Filewriter extends outputstreamwriter extends writer Filewriter:文件字符输出流 作用:把内存中字符数据写入到文件中 构造方法: Filewriter(FiLe fiLe)根据给定的File 对象构造一个Filewriter对象。 FiLewriter(String fileName)根据给定的文件名构造一个Filewriter对象。 参数:写入数据的目的地 string fiLeName:文件的路径File file:是一个文件 构造方法的作用: 1.会创建一个Filelriter对象 2.会根据构造方法中传递的文件/文件的路径,创建文件 3.会把FiLelwriter对象指向创建好的文件 字符输出流的使用步骤(重点)∶ 1 .创建FiLelriter对象,构造方法中绑定要写入数据的目的地 2.使用FiLewriter中的方法vrite,把数据写入到内存缓冲区中(字符转换为字节的过程) 3.使用Filewriter中的方法fLush,把内存缓冲区中的数据,刷新到文件中 4.释放资源(会先把内存缓冲区中的数据刷新到文件中) */ public class Demo01Writer { public static void main(String[] args) throws IOException { //1 .创建FiLelriter对象,构造方法中绑定要写入数据的目的地 FileWriter writer = new FileWriter("q.txt"); //2.使用FiLewriter中的方法vrite,把数据写入到内存缓冲区中(字符转换为字节的过程) writer.write(97); //3.使用Filewriter中的方法fLush,把内存缓冲区中的数据,刷新到文件中 //writer.flush(); //4.释放资源(会先把内存缓冲区中的数据刷新到文件中) writer.close(); } }
关闭和刷新
因为内置缓冲区的原因,如果不关闭输出流,无法写出字符到文件中。但是关闭的流对象,是无法继续写出数据的。如果我们既想写出数据,又想继续使用流,就需要 flush方法了。
flush方法和close方法的区别:
flush:刷新缓冲区,流对象可以继续使用
close:先刷新缓冲区,然后通知系统释放资源,流对象不可以再继续使用了
package DemoOutputStream; import java.io.FileWriter; import java.io.IOException; /* flush方法和close方法的区别: flush:刷新缓冲区,流对象可以继续使用 close:先刷新缓冲区,然后通知系统释放资源,流对象不可以再继续使用了 */ public class Demo01CloseAndFlush { public static void main(String[] args) throws IOException { //1 .创建FiLelriter对象,构造方法中绑定要写入数据的目的地 FileWriter writer = new FileWriter("q.txt"); //2.使用FiLewriter中的方法vrite,把数据写入到内存缓冲区中(字符转换为字节的过程) writer.write(97); //3.使用Filewriter中的方法fLush,把内存缓冲区中的数据,刷新到文件中 writer.flush(); //刷新后可以继续使用 writer.write(98); //4.释放资源(会先把内存缓冲区中的数据刷新到文件中) writer.close(); //close方法之后流已经关闭了,已经从内存中消失了 writer.write(99); }
package DemoOutputStream; import java.io.FileWriter; import java.io.IOException; /* flush方法和close方法的区别: flush:刷新缓冲区,流对象可以继续使用 close:先刷新缓冲区,然后通知系统释放资源,流对象不可以再继续使用了 */ public class Demo01CloseAndFlush { public static void main(String[] args) throws IOException { //1 .创建FiLelriter对象,构造方法中绑定要写入数据的目的地 FileWriter writer = new FileWriter("q.txt"); //2.使用FiLewriter中的方法vrite,把数据写入到内存缓冲区中(字符转换为字节的过程) writer.write(97); //3.使用Filewriter中的方法fLush,把内存缓冲区中的数据,刷新到文件中 writer.flush(); //刷新后可以继续使用 writer.write(98); //4.释放资源(会先把内存缓冲区中的数据刷新到文件中) writer.close(); //close方法之后流已经关闭了,已经从内存中消失了 // writer.write(99); } }
package DemoOutputStream;
import java.io.FileWriter;
import java.io.IOException;
/*
flush方法和close方法的区别:
flush:刷新缓冲区,流对象可以继续使用
close:先刷新缓冲区,然后通知系统释放资源,流对象不可以再继续使用了
*/
public class Demo01CloseAndFlush {
public static void main(String[] args) throws IOException {
//1 .创建FiLelriter对象,构造方法中绑定要写入数据的目的地
FileWriter writer = new FileWriter("q.txt");
//2.使用FiLewriter中的方法vrite,把数据写入到内存缓冲区中(字符转换为字节的过程)
writer.write(97);
//3.使用Filewriter中的方法fLush,把内存缓冲区中的数据,刷新到文件中
writer.flush();
//刷新后可以继续使用
writer.write(98);
//4.释放资源(会先把内存缓冲区中的数据刷新到文件中)
writer.close();
//close方法之后流已经关闭了,已经从内存中消失了
writer.write(99);
}