「Java进阶」I/O操作必备知识点:关于字符流读写的实例讲解

资讯 1年前 (2022) 千度导航
13 0 0

欢迎来到全网最完整的Java入门系列教程!!!

本教程将包含基础知识、进阶知识、常用框架等,循序渐进地分享Java中必须掌握的知识和技术。建议跟着教程的节奏每天学习一点,你会发现入门Java没有想象中那么难。

「Java进阶」I/O操作必备知识点:关于字符流读写的实例讲解

上一讲我们讲解了IO文件读写字节流读写的部分,本期就要说一下字符流读写。

如果你正在学习Java,不妨收藏这篇文章,或者关注我,定期收获与Java有关的知识和项目信息!

Java进阶知识前九课的内容,可拉到文章末尾获取。


「Java进阶」I/O操作必备知识点:关于字符流读写的实例讲解

接下来就让我们正式开始分享课程内容吧。

一、Writer类

1. 概念

Writer类是一个字符流输出的抽象类,字符流是特殊的字节流,常见的子类有:FileWriterCharArrayWriter等。

2. 输出字符流-代码实现

代码示例(代码初构):

import java.io.*;

public class IODemo {

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

        File f = new File("io.txt");
        Writer writer = new FileWriter(f);
        writer.write("老K玩代码");    // 在目标文件中写入文本
        writer.append("\nlord k coding.");    // 在目标文件中追加文本
        writer.close();    // 关闭对象
    }
}

说明:

  • 注意:当初始化Writer writer =newFileWriter(f);的时候,f文档中的内容会被清空;
  • 为体现输出字符流的代码主体结果,我们直接将所有异常向上抛出,不过现实中建议用以下方式实现文本写入。

代码示例(实操时的完整代码):

import java.io.*;

public class IODemo {

    public static void main(String[] args) {

        // ① 对象实例化
        File f = new File("io.txt");
        Writer writer = null;
        try{
            if (!f.exists()) {
                f.createNewFile();
            }

            // ②读写文件
            writer = new FileWriter(f);
            writer.write("老K玩代码");    // 在目标文件中写入文本
            writer.append("\nlord k coding.");    // 在目标文件中追加文本

        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {

            // ③关闭文件
            try {
                writer.close();    // 关闭对象
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

说明:

  • 读取f的时候,File指向的文件路径可能不存在,所以先用f.exists()方法判断,若不存在,则f.createNewFile()创建;
  • writer =newFileWriter(f);可能会抛出IOException异常,用try...catch....捕获;
  • 最后关闭writer时,注意捕获IOException异常。

二、Reader类

1. 概念

ReaderWriter类相对应,是字符流输入的抽象类,常见的子类有:FileReaderCharArrayReader等。

2. 输入字符流-代码实现

示例代码(代码初构):

import java.io.*;

public class IODemo {

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

        File f = new File("io.txt");
        Reader reader = new FileReader(f);
        int ch = 0;
        while ((ch = reader.read()) != -1) {
            System.out.print((char)ch);
        }
        reader.close();
    }
}

说明:

  • 对异常作向上抛出处理,仅作为展示代码主体结构之用,现实中以下例为佳;

代码示例(实操时的完整代码):

import java.io.*;

public class IODemo {

    public static void main(String[] args) {

        // ① 对象实例化
        File f = new File("io.txt");
        Reader reader = null;
        try {
            reader = new FileReader(f);

            // ②读写文件
            int ch = 0;
            while ((ch = reader.read()) != -1) {
                System.out.print((char)ch);
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {

            // ③关闭文件
            try {
                reader.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }

    }
}

说明:

  • Reader通过read()方法读取出来的数据是整型数值int,打印需要通过(char)转型成字符再输出。

关于字符流读写的知识就分享到这里。

内容不多,和老K一起每天积累一点点,轻轻松松掌握Java知识。

正在学习的小伙伴记得给老K一个赞哦,你的支持是我持续输出课程内容最大的动力!

「Java进阶」I/O操作必备知识点:关于字符流读写的实例讲解

Java进阶知识前九课的内容,可点击下方获取:

如何优雅的处理异常--Java进阶知识讲义系列(一)

包装器类装箱与拆箱的艺术——Java进阶知识讲义系列(二)

一文讲透Java字符串——Java进阶知识讲义系列(三)

List的用法和实例详解——Java进阶知识讲义系列(四)

Set的用法和实例详解——Java进阶知识讲义系列(五)

Map的用法和实例详解——Java进阶知识讲义系列(六)

常用集合的排序方法——Java进阶知识讲义系列(七)

I/O流之File类的用法和实例详解——Java进阶知识讲义系列(八)

「Java进阶」I/O操作必备知识点:字节流读写实例讲解

版权声明:千度导航 发表于 2022年11月7日 00:24。
转载请注明:「Java进阶」I/O操作必备知识点:关于字符流读写的实例讲解 | 千度百科

相关文章