字符流读写

1.为什么出现字符流?

因为字节流操作中文不是特别方便,所以Java就提供字符流

2.字符流包括

 3.字符输入流代码

 public static void main(String[] args) throws IOException {
        //字符输入流Reader
        File f1=new File("d:/a.txt");
        //每次读取一个字符(中文占一个字符)
        Reader in=new FileReader(f1);
        //int n=in.read();//所有的中文符,每次读取一个字符,把该字符转换成对应编码值
//        System.out.println((char)n);
//
//        int n1=in.read();
//        System.out.println((char)n1);
        //使用缓冲区读取多个字符
        char[] buffer=new char[10];
        int n= in.read(buffer);//每次最多读取buffer数组个长度字符,把读取到的字符存入buffer数组中,返回的是实际读取到的字符串
        System.out.println(n);
        System.out.println(Arrays.toString(buffer));
 
        char[] buffer1=new char[10];
        int n1= in.read(buffer1);//每次最多读取buffer数组个长度字符,把读取到的字符存入buffer数组中,返回的是实际读取到的字符串
        System.out.println(n1);
        System.out.println(Arrays.toString(buffer1));
    }

字符输出流

public static void main(String[] args) throws IOException {
        File f2=new File("D:/b.txt");
        if (!f2.exists()){
            f2.createNewFile();
 
        }
        //定义一个字符输出流,向f2文件写入内容
        Writer out=new FileWriter(f2);
 
        out.write(97);//转输出字符
 
        out.write((int)'对');//强转数字输出
 
        out.write("我是中国人!!!");//输出字符
 
        char[] ch={'和','好','吧','!'};
        out.write(ch);
 
        out.flush();//刷新 字符输出流有缓冲区的概念,需要刷新缓冲区才能更新到硬盘
        out.close();
    }

flush方法和close方法的区别:close释放资源前进行一次刷新流,close执行后不能在写内容;而flush是刷新流,执行完毕依旧可以写内容;

4.综合案例


import java.io.*;
import java.util.Arrays;
 
public class ReaderTest006 {
    public static void main(String[] args) throws IOException {
        //定义File对象
        File f1=new File("D:/a.txt");
        //字符输入流Reader
        Reader in=new FileReader(f1);
        //使用缓冲区读取多个字符
        char[] buffer=new char[10];
        int n=in.read(buffer);//每次最多读取buffer数组长个字符,把读取到的字符存入buffer数组中,返回的是实际读取的字符数
        System.out.println(n);
        System.out.println(Arrays.toString(buffer));
        char[] buffer1=new char[10];
        int n1=in.read(buffer1);//每次最多读取buffer数组长个字符,把读取到的字符存入buffer数组中,返回的是实际读取到的字符数
        System.out.println(n1);
        System.out.println(Arrays.toString(buffer1));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值