Java io流(字符流)

什么是字符流?

当我们在使用字节流读取文件时,可能会遇到一个小问题,就是在读取中文字符时,可能会显示不完整的字符,而这个原因就是使用的格式不同,一个中文字符可能会占用多个字节存储。比如UTF-8格式中,中文字符就占三个字节。所以Java中提供了字符流,以字符为单位,专门处理一些文本文件。

字符流的分类

字符流也和字节流一样,分为字符输入流和字符输出流。

什么是字符输入流?

字符输入流在Java中有一个类叫Reader,这个类也是一个抽象类,也是读取所有字符流的超类,就是读取字符信息到内存中。它定义了一些基本的共性功能方法。

基本共性功能方法

read()

从输入流读取一个字符

read(char[] cbuf)

从输入流读取多个字符,并存储到数组中。

close()

关闭流释放资源

字符输入流的使用

public static void main(String[] args) throws IOException {

        File desktopDir = FileSystemView.getFileSystemView().getHomeDirectory();
        File file = new File("D:/a.txt");
        // 创建一个文件字符输入流与源文件接通
        Reader in = new FileReader(file);
        // 声明一个数组
        char[] chars = new char[10];

        int n = in.read(chars);
        String str1 = new String(chars, 0, n);
        System.out.println(str1);

        int n1 = in.read(chars);
        String str2 = new String(chars, 0, n1);
        System.out.println(str2);

    }

什么是字符输出流?

就是将数据从内存写入到硬盘中的文件,Writer就是字符输出流的父类,而它也是一个抽象类,是所有字符输出流的最顶层父类,它定义了字符输出流的基本共性功能方法,而抽象类是无法直接使用的,我们就通过它的一些子类来学习这个类。以下就是一些基本共性功能方法和子类。

字符输出流的分类
字符输出流分为以下几个类:

BufferedWriter:带缓冲流的

CharArrayWriter:写入字符数组的

FilterWriter:带过滤器到的

OutputStreamWriter:转换流

PipedWriter:管道流

StringWriter写入字符串的

字符输出流的使用

public static void main(String[] args) throws IOException {
        File file = new File("D:/b.txt");
        if (!file.exists()) {
            file.createNewFile();
        }
        Writer out = new FileWriter(file);
        out.write(97);
        out.write((int) '我');

        char[] chars = {'去','去','去'};
        out.write(chars,0,2);
        out.write("南阳");
        out.flush();
        out.close();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值