字符输出流的基本使用_写出单个字符到文件与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);


}
posted @ 2022-07-09 14:12  zj勇敢飞,xx永相随  阅读(63)  评论(0编辑  收藏  举报