其他分享
首页 > 其他分享> > io流-字符输出流和FileWriter类

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