JAVA IO流-基础流-字符流 <FileReader>输入流 与 <FileWriter>输出流

本文介绍了Java中基础IO流的概念,包括字符流与字节流的区别及其基本使用方法。通过实例演示了如何利用FileWriter进行文件写入,FileReader进行文件读取,并展示了如何使用这两种流来完成文本文件的复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IO流-基础流-字符流

基础流-字符流
<FileReader>输入流 
<FileWriter>输出流

基础流-字节流
<FileInputStream>输入流
<FileOutputStream>输出流

流程:
程序-->磁盘
程序<--磁盘

字符流与字节流的用法几乎一模一样.
字节流与字符流的区别
字节流:读写单位是字节(所有文件都由字节组成), 可以传输读写任何文件,
字符流:读写单位是字符,所以只能对文本文件这一类操作,优势在于,对文本之类的数据操作要比字节流快

为了代码可读性,下面代码全部抛出错误,实际使用中要用try/catch捕获

1.<FileWriter>字符输出流

输出流

往a.txt中写数据
public class demo01 {
    public static void main(String[] args) throws IOException {

        //创建一个基础字符输出流  输出地址为a.txt   没有就自动创建
        FileWriter fileWriter = new FileWriter("a.txt");

        //往目标地址中输出(文件写入) aabbcc
        fileWriter.write("aabbcc");

        //用完流记得关掉
        fileWriter.close();
    }
}
    }

a.txt 中的内容

aabbcc

2.<FileReader>字符输入流

输入流

读取a.txt中的数据
public class demo02 {
    public static void main(String[] args) throws IOException {

        //创建一个基础字符输入流  读取地址a.txt中的数据   没有就报错
        FileReader fileReader = new FileReader("a.txt");

        //字节流用来接收数据的是字节数组,所以字符流当然是要用字符数组,读取单位是字符,一个字一个字读取
        char[] chars = new char[1024];
        int len;
        while ((len = fileReader.read(chars)) !=-1 ){
            System.out.println(new String(chars,0,len));
        }
        //关流
		fileReader.close();
    }
}

输出结果

aabbcc

3.<FileReader>与<FileWriter>实现拷贝

注意: 因为字符流的传输单位是字符,所以字符流只能拷贝 <文本文件>

将a.txt拷贝到b.txt
public class demo {
    public static void main(String[] args) throws IOException {

        //输入流
        FileReader fileReader = new FileReader("a.txt");
        //输出流
        FileWriter fileWriter = new FileWriter("b.txt");

        char[] chars = new char[1024];
        int len;
        //读取a.txt
        while ((len = fileReader.read(chars)) != -1){
            
            //写入b.txt
            fileWriter.write(chars,0,len);

        }
        //关流
        fileReader.close();
        fileWriter.close();

    }
}

b.txt 中的内容

aabbcc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值