java字符流

字符输出流

Writer 抽象类 子类:FileWriter

一次输出一个字符 可以写出读入汉字咯

创建字符输出流对象

//方式一:
Writer writer = new FileWriter("文件地址");
//方式二:
Writer writer = new FileWriter(new file("文件地址"));

后面可加bollean append参数,true则追加

写出数据

writer(int)

writer(String)

writer(char[])

writer(char[], off, len)

字符输出流内部有一个缓冲区

writer(97) 将数据(a)写出缓冲区

flush() 刷出 将数据写到磁盘中

关闭资源

关掉资源后 不需要 手动flush,也会将缓冲区的数据 刷出 到磁盘上

双重保险: 同时flush() close()

字符输入流

Reader 抽象类 通过子类:FileReader

创建字符输入流对象

同上,但必须存在这个文件

读取数据

read() 拿到编码值

返回int ,拿到对应字符的编码值,可以进行强转(char)

一点一点往后读若拿到-1表示文件内的资源已经读取完了

注意:

  1. 若发现强转后 出现乱码,那么就是 编码 的问题
  2. 使用 字符输入流读取数据时 存储数据的文件编码类型 要与代码编辑器的类型一致

在这里插入图片描述

关闭资源

close()

用byte[]数组 读取数据的

区别在于char[] bytes = new char[20];

创建的是字符数组

其他同字节流一样

完成文本文件的复制

只能复制纯文本

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

public class TextFileCopy {
    public static void main(String[] args) {
        String sourceFile = "source.txt"; // 源文件路径
        String destinationFile = "destination.txt"; // 目标文件路径

        try (FileReader reader = new FileReader(sourceFile);
             FileWriter writer = new FileWriter(destinationFile)) {

            int character;
            while ((character = reader.read()) != -1) {
                writer.write(character);
            }

            System.out.println("文件复制成功!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值