字符输出流(Writer)& 字符输入流(Reader)

1.字符输出流

字符流适用于处理中文数据,Witer是字符输出流的处理类。
类定义:public abstract class writer implements Appendable,Closeable,Flushable

与 OutputStream相比多了一个Appendable接口。

在Writer类里面提供了一个直接输出字符串的方法:

public void write(String str) throws IOException

要操作文件时,使用FileWriter子类。

eg:通过Writer实现输出

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;

public class TestWriter {

    public static void main(String[] args) throws Exception {
        File file = new File("C:\\Users\\64576\\Desktop\\Hello.txt");
        if(!file.getParentFile().exists()){
            file.getParentFile().mkdirs();
        }
        String msg = "Hello!";
        Writer out = new FileWriter(file);
        out.write(msg);
        out.close();
    }
}

Writer类的结构与方法的使用与OutputStream非常相似,只是Writer类对于中文的支持很好并且提供了直接写入 String的方法而已。

2.字符输入流
Reader依然也是一个抽象类。

如果要进行文件读取,同样的,使用FileReader。

在Reader类中没有方法可以直接读取字符串类 型,这个时候只能通过字符数组进行读取操作。

import java.io.File;
import java.io.FileReader;
import java.io.Reader;

public class TestReader {

    public static void main(String[] args) throws Exception{
        // 1.定义文件路径
        File file = new File( "C:\\Users\\64576\\Desktop\\Hello.txt");
        // 2.必须保证文件存在才能进行处理
        if (file.exists()) {
            Reader in = new FileReader(file) ;
            char[] data = new char[1024] ;
            int len = in.read(data) ;
            // 将数据读取到字符数组中
            String result = new String(data, 0, len) ;
            System.out.println("读取内容【"+result+"】") ;
            in.close();
        }
    }
}

字符流适合处理中文,字节流适合处理一切数据类型(对中文支持不好)

在以后进行IO处理的时候,如果处理的是图片、音乐、文字都可以使用字节流,而只有处理中文的时候才会使用字符流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值