io流-字符输出流和FileWriter类
作者:互联网
字符输出流
Writer抽象类是表示用于写出字符流的所有类的超类 将指定的字符信息写出目的地 它是隶属于java.io包下
基本共性功能方法
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()关闭此流 但要先刷新它
FileWriter类
FileWriter:文件字符输出流
作用:把内存中字符数据写入到文件中
构造方法:
FileWriter(File file)根据给定的File对象构造一个 FileWriter对象 FileWriter(String fileName)根据给定的文件名构造一个FileWriter对象
参数:写入数据的目的地
String fileName:文件的路径
File file:是一个文件
构造方法的作用
1.会创建一个FileWriter对象
2.会根据构造方法中传递的文件/文件的路径 创建文件
3.会把FileWriter对象指向创建好的文件
字节输出流的使用步骤:
1.创建FileWriter对象 构造方法中绑定要写入数据的目的地
2.使用FileWriter中的方法write 把数据写入到内存缓存区中(字符转换为字节的过程)
3.使用FileWriter中的方法flush 把内存缓冲区中的数据 刷新到文件中
4.释放资源(会先把内存缓冲区中的数据刷新到文件中)
代码:
public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("D:\\file\\a.txt"); fw.write(97); // fw.flush(); fw.close();//在使用我们的字符输出流的时候必须使用刷新或者释放资源的方法 否则就会写不上 }
运行前:
运行结果
运行后:
关闭和刷新
因为内置缓冲区的原因 如果不关闭输出流 无法写出字符到文件中 但是关闭的流对象 是无法继续写出数据的 如果我们既想写出数据 又想继续使用流 就需要flush方法
fiush:刷新缓冲区 流对象可以继续使用
close:先刷新缓冲区 然后通知系统释放资源 流对象不可以再被使用了
使用flush的代码
public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("D:\\file\\c.txt"); fw.write("a"); fw.flush(); fw.write("b"); fw.flush(); }
运行前:
运行结果:
运行后
c.txt
使用close的代码
代码:
public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("D:\\file\\b.txt"); fw.write("a"); fw.close(); fw.write("b"); fw.close(); }
运行前
运行结果:
运行后
b.txt
close方法之后流已经关闭了 已经从内存中消失了 流就不能再使用了
标签:字符,fw,void,写入,write,io,FileWriter 来源: https://www.cnblogs.com/aimz01/p/16490735.html