当前位置:网站首页>4.字符流

4.字符流

2022-08-09 09:23:00 过来我的小熊

字符流

  • 字符流的父类(抽象类):
    • Reader::字符输入流 int read()
    • Writer:字符输出流 void write()
  • 文件字符流 (FileReader/FileWriter)
    • int read(char[] c) 从流中读取多个字符,将读到内容存入c数组,返回实际读到的字符数,如果达到文件的尾部,则返回-1
    • void write(String str) 一次写多个字符,将b数组中所有字符,写入输出流
  • 字符缓存流 (BufferedReader/BufferedWriter)
    • 高效读写
    • 支持输入换行符 newLine()
    • 可一次写一行,读一行
  • 打印流 (PrintWriter/PrintStream)
    • 封装了print() / println() 方法,支持写入后换行
    • 支持数据原样打印

文件字符流

FileReader

package com.io.zifu;

import java.io.FileReader;
import java.io.IOException;

/**
 * 字符流的使用
 * FileReader
 */
public class Demo1 {
    public static void main(String[] args) throws IOException {
        // 创建FileReader对象
        FileReader fr = new FileReader("E:\\桌面\\aaa.txt");

        // 读取文件
        // 第一种读取
//        int data=0;
//        while ((data=fr.read())!=-1){
//            System.out.print((char)data);
//        }

        // 第二种读取
        char[] buf = new char[1024];
        int count = 0;
        while ((count=fr.read(buf))!=-1){
            System.out.println(new String(buf,0,count));
        }

        // 关闭
        fr.close();
    }
}

FileWriter

package com.io.zifu;

import java.io.FileWriter;
import java.io.IOException;

/**
 * 字符流的使用
 * FileWriter
 */
public class Demo2 {
    public static void main(String[] args) throws IOException {
        // 创建FileWriter对象
        FileWriter fw = new FileWriter("E:\\桌面\\aaa.txt",true); //true 为追加模式

        // 写入
        fw.write("Java是世界上最好的语言");
        // 关闭
        fw.close();
        System.out.println("执行完毕");
    }
}

FileReader与FileWriter实现复制文件,不能复制图片与二进制文件4

使用字节流可以复制任意文件

package com.io.zifu;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 使用FileReader和FileWriter复制文件,不能复制图片与二进制文件
 */
public class Demo3 {
    public static void main(String[] args) throws IOException {
        // 创建对象
        FileReader fr = new FileReader("E:\\桌面\\aaa.txt");
        FileWriter fw = new FileWriter("E:\\桌面\\bbb.txt");
        int data=0;

        while ((data=fr.read())!=-1){
            fw.write((char)data);
        }

        // 关闭
        fr.close();
        fw.close();
        System.out.println("执行完毕");
    }
}

字符缓冲流

BufferedReader

package com.io.zifu;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

/**
 * 使用字符缓存流来读取文件
 * BufferedReader
 */
public class Demo4 {
    public static void main(String[] args) throws IOException {
        // 创建BufferedReader对象
        FileReader fr = new FileReader("E:\\桌面\\aaa.txt");
        BufferedReader br = new BufferedReader(fr);

        //读取
        // 第一种方式读取
//        char[] buf = new char[1024];
//        int count = 0;
//        while ((count=br.read(buf))!=-1){
//            System.out.println(new String(buf,0,count));
//        }

        // 第二种方式读取,一行一行的读取 readLine()
        String line = null;
        while ((line=br.readLine())!=null){
            System.out.println(line);
        }

        // 关闭
        br.close();
    }
}

BufferedWriter

package com.io.zifu;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 字符缓冲流
 * BufferedWriter
 */
public class Demo5 {
    public static void main(String[] args) throws IOException {
        // 创建BufferedWriter对象
        FileWriter fw = new FileWriter("E:\\桌面\\aaa.txt",true);
        BufferedWriter bw = new BufferedWriter(fw);

        // 写入
        bw.newLine(); // 换行
        bw.write("加油明天");
        // 关闭
        bw.close();
        System.out.println("执行完毕");
    }
}

打印流

PrintWriter

package com.io.zifu;

import java.io.IOException;
import java.io.PrintWriter;

/**
 * 打印流
 * PrintWriter
 */
public class Demo6 {
    public static void main(String[] args) throws IOException {
        // 创建对象
        PrintWriter pw = new PrintWriter("E:\\桌面\\aaa.txt");
        // 打印
        pw.println("加油明天");
        pw.println(3.14);
        pw.println('h');
        // 关闭
        pw.close();
        System.out.println("执行完毕");
    }
}

原网站

版权声明
本文为[过来我的小熊]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_56121715/article/details/123762481