字符输出流,顶级父类:Writer ——抽象类

常用子类:FileWriter

public class FileWriterDemo01 {
    public static void main(String[] args) throws IOException {
        //1.创建流 --必须指定目标文件路径
       FileWriter fileWriter = new FileWriter("D:\\IdeaProjects\\src\\com\\abc");                      

        //2.操作流  --将数据写到文件
        fileWriter.write("坂井泉水");

        //3.关闭流,释放资源
        fileWriter.close();
    }
}

    字符输出流使用细节:
      1.创建流对象时,如果文件不存在时:程序会帮我们创建该文件,但是要保证文件夹路径存在!
      2、创建流对象时,如果文件存在:默认先清空文件夹中原有内容!
              如果不想清空文件中的原有内容,可以多加一个构造参数:true,表示开启续写模式!
      3、写出一个换行符:fileWriter.write(System.lineSeparator());
public class FileWriterDemo02 {
    public static void main(String[] args) throws IOException {
        //1.创建流 --必须指定目标文件路径
        FileWriter fileWriter = new FileWriter  ("D:\\IdeaProjects\\BasicCode\\src\\com\\abcd",true);

        //2.操作流  --将数据写到文件
        fileWriter.write("坂井泉水");
        //打印换行
        fileWriter.write(System.lineSeparator());
        fileWriter.write("睡觉");
        fileWriter.write(System.lineSeparator());
        fileWriter.write("敞开心扉");

        //3.关闭流,释放资源(如果不关闭流,数据无法到达文件)
        fileWriter.close();
    }
}

字符输出流使用细节:

close():关闭流,关闭之后流就不能在操作了!关闭之前先自动刷新流,使得数据进入文件。

flush():刷新流,刷新缓冲区,使得数据进入文件,不会关闭流,可以继续操作流。

public class FileWriterDemo03 {
    public static void main(String[] args) throws IOException {
        //1.创建流 --必须指定目标文件路径
        FileWriter fileWriter = new FileWriter                     
("D:\\IdeaProjects\\BasicCode\\src\\com\\abcde");

        //2.操作流  --将数据写到文件
        fileWriter.write("坂井泉水");
        fileWriter.flush();               //刷新缓冲区,将数据发送到文件
        fileWriter.write(System.lineSeparator());   //打印换行

        fileWriter.write("睡觉");
        fileWriter.flush();
        fileWriter.write(System.lineSeparator());

        fileWriter.write("敞开心扉");
        fileWriter.flush();

        //3.关闭流,释放资源
        fileWriter.close();
    }
}

字符输入流

顶级父类: Reader — 抽象类

子类:FileReader

public class FileReaderDemo01 {
    public static void main(String[] args) throws Exception {
        //1.创建流 --给定要读取的文件路径
        FileReader fr = new          FileReader("D:\\IdeaProjects\\BasicCode\\src\\com\\abc ");

        //操作流
        int a1 = fr.read();
        System.out.println((char) a1);

        int a2 = fr.read();
        System.out.println((char) a2);

        int a3 = fr.read();
        System.out.println((char) a3);

        int a4 = fr.read();
        System.out.println((char) a4);
       
        //3.关闭流,释放资源
        fr.close();
    }
}

循环读取:

public class Demo02 {
    public static void main(String[] args) throws IOException {
        //创建流
        FileReader fileReader = new FileReader     ("D:\\IdeaProjects\\BasicCode\\src\\com\\字符流和字节流");
        
        /*操作流
         1.先执行FileWriter.read(),第一个数据
         2.再将读到的数据赋值给a
         3.最后再判断a记录的值是否不等于-1
        */
        int a;
        while ((a = fileReader.read()) != -1) {
            System.out.print((char) a);
        }

        //关闭流,释放资源
        fileReader.close();
    }
}

发表回复

您的电子邮箱地址不会被公开。