字符输入流

简介: 字符输入流

字符输入流(Character Input Stream)是用于从输入源(如文件、网络连接等)读取字符数据的流对象。在 Java 中,主要使用 java.io.Reader 及其子类来实现字符输入流的操作。

FileReader 是 Java 中用于读取字符数据的文件输入流类,它继承自 InputStreamReader 类,并实现了 CloseableAutoCloseable 接口。FileReader 可以读取存储在文件中的字符数据。

import java.io.FileReader;
import java.io.IOException;
try (FileReader reader = new FileReader("input.txt")) {
    int data;
    while ((data = reader.read()) != -1) {
        char ch = (char) data;
        System.out.print(ch);
    }
} catch (IOException e) {
    e.printStackTrace();
}

在上述示例中,首先创建了一个 FileReader 对象,并传入要读取的文件名(例如 "input.txt")。使用 read() 方法读取文件中的字符数据,每次读取一个字符,直到读取到文件末尾(返回 -1)为止。读取的字符被强制转换为 char 类型,并打印到控制台。

FileReader 类的原理是基于底层的字节流和字符集编码的转换。

在 Java 中,底层的文件输入流是 FileInputStream,它是一个字节流,用于从文件中读取字节数据。FileReader 类将 FileInputStream 转换为字符流,以便可以按字符读取文件内容。

FileReader 类实际上继承了 InputStreamReader 类,而 InputStreamReader 类是字符流与字节流之间的桥梁,通过它可以将字节流转换为字符流。FileReader 类内部会创建一个 InputStreamReader 对象,并指定一个默认的字符集编码(通常为平台默认编码)来进行字节到字符的解码。

当我们使用 FileReaderread() 方法时,FileReader 内部会调用其父类 InputStreamReaderread() 方法,这个方法会从底层的 FileInputStream 中读取字节数据,然后将字节数据根据指定的字符集编码方式进行解码转换成字符,最后返回读取到的字符数据。

需要注意的是,在字符流的读取过程中,字节数据会被缓冲区(Buffer)逐步加载进来,并根据需要转换为字符。这样可以提高读取的效率,减少每次读取的系统开销。


相关文章
|
JavaScript API
Vue3 set up 的使用
Vue3 set up 的使用
171 0
|
缓存 算法 Java
深入理解PHP的垃圾回收机制
在动态语言的运行环境中,内存管理是至关重要的一环。PHP作为一门广泛使用的动态脚本语言,其内部实现了一套垃圾回收机制来自动管理内存。本文将通过具体案例和数据分析,深入探讨PHP的垃圾回收机制,包括它的工作原理、触发条件以及性能影响等方面。
|
安全 网络架构
|
存储 C语言
【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)(上篇)
printf 的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的 f 代表 format (格式化),表⽰可以定制输出⽂本的格式。
287 1
|
JavaScript 前端开发 算法
幂等问题 vs 如何判断是否是4的幂
该文章探讨了如何判断一个给定的十进制整数是否为4的幂,并提供了多种JavaScript实现方法,包括使用循环、位运算以及正则表达式等不同的解决方案。
幂等问题 vs 如何判断是否是4的幂
|
JavaScript 前端开发 开发者
vue生命周期
【8月更文挑战第1天】vue生命周期
150 2
|
Kubernetes 容器
934.【kubernetes】kubeadm版本更新证书
934.【kubernetes】kubeadm版本更新证书
668 2
|
存储 数据安全/隐私保护
html的输入框类型
html的输入框类型
201 1
|
数据库连接 应用服务中间件 数据库
Seata常见问题之访问seata 7091端口提示报错如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
1390 0
|
移动开发 算法 前端开发
单词接龙 II
单词接龙 II
137 0
单词接龙 II

热门文章

最新文章