IO字符流

这篇博客详细介绍了Java中的字符输入流和输出流的使用步骤,包括FileReader和FileWriter的实例代码,以及异常处理的方法。字符输入流通过FileReader读取文件,而字符输出流使用FileWriter将数据写入文件,并通过flush方法刷新缓冲区内容。

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

一、字符输入流

1、使用步骤

1、创建FileReader对象,构造方法中绑定要读取的数据源

2、使用FileReader对象方法reader读取文件

3、释放资源

2、代码1

public class Demo09 {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("E:\\D.txt");
        int len = 0;
        //一次读取单个字符
        while((len=fr.read())!=-1){
            System.out.println((char) len);
        }
    }

}

结果:
在这里插入图片描述

3、代码2

public class Demo10 {
    public static void main(String[] args) throws IOException {
        FileReader fe = new FileReader("E:\\D.txt");
        char[] cs = new char[1024];//存储读取的多个字符
        int len =0;//记录的是每次读取的有效字符数
        while((len=fe.read(cs))!=-1){
            System.out.println(new String(cs,0,len));
        }
    }
}

结果:
在这里插入图片描述

二、字符输出流

1、使用步骤

1、创建FileWriter对象,构造方法中绑定要写入数据的目的地

2、使用FileWriter中的writer,把数据写入到内存缓冲区中(字符转换为字节的过程)

3、使用FileWriter中的方法flush,把内存缓冲区中数据,刷新到文件中

4、释放资源(会先把内存缓冲区中数据刷新到文件中)

2、代码1

public class Demo11 {
    public static void main(String[] args) throws IOException {
        //1、创建FileWriter对象,构造方法中绑定要写入数据的目的地
        FileWriter fw = new FileWriter("E:\\E.txt");
        //2、使用FileWriter中的writer,把数据写入到内存缓冲区中(字符转换为字节的过程)
        fw.write(98);
        //3、使用FileWriter中的方法flush,把内存缓冲区中数据,刷新到文件中
        fw.flush();
        //4、释放资源(会先把内存缓冲区中数据刷新到文件中)
        fw.close();

    }
}

3、代码2

public class Demo12 {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("E:\\E.txt");
        char[] cs = {'a','d','c','w'};
        fw.write(cs);
        fw.write(cs,0,2);
        fw.write("程序员");
        fw.flush();
        fw.close();
    }
}

3、代码3

public class Demo13 {
    public static void main(String[] args) throws IOException {
        //添加追加写开关(在原有内容上继续写)
        FileWriter fw = new FileWriter("E:\\E.txt",true);
        for(int i=0;i<10;i++){
            fw.write("你好"+"\r\n");
        }
        fw.close();
    }
}

三、异常处理

代码:

public class Demo13 {
    public static void main(String[] args){
        FileWriter fw = null;
        try {
            //可能会产生异常的代码
             fw = new FileWriter("E:\\E.txt", true);
            for (int i = 0; i < 10; i++) {
                fw.write("你好" + "\r\n");
            }
        }catch (IOException e){
            //异常处理逻辑
            System.out.println(e);
        }finally {
            //一定会执行的代码
            //如果创建失败。fw的默认值就是null,null是不能调用方法的,会抛出NullPointerException,需要增加一个判断
            //不是null再把资源释放掉
            if(fw!=null){
                try {
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃辣的IT男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值