前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【深入了解Java IO】使用InputStreamReader读取文件内容,轻松实现文本转换任务

【深入了解Java IO】使用InputStreamReader读取文件内容,轻松实现文本转换任务

原创
作者头像
喵手
发布2023-11-10 00:00:58
1.2K0
发布2023-11-10 00:00:58
举报
文章被收录于专栏:Java进阶实战

哈喽,各位小伙伴们,你们好呀,我是喵手。

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

在Java编程中,读写文件是常见的操作之一。而在读写文件的过程中,需要进行字符转换时,可以使用InputStreamReader类来进行处理。本篇文章将介绍如何使用InputStreamReader类来读取文件内容,并实现文本转换的任务。

摘要

本文将介绍如何使用InputStreamReader类来读取文件内容,并实现文本转换的任务。具体内容包括:使用InputStreamReader读取文件内容、代码方法介绍、测试用例以及全文小结。

使用InputStreamReader读取文件内容

使用InputStreamReader读取文件内容的步骤如下:

  1. 创建输入流对象,以便读取文件内容。
  2. 创建InputStreamReader对象,并指定输入流对象和字符编码。
  3. 使用read()方法读取字符,并将读取的字符存储在缓冲区中,直到缓冲区满或者读取完所有字符。
  4. 将缓冲区中的字符转换为字符串,并输出到控制台或文件中。
  5. 关闭输入流对象和InputStreamReader对象。

如何创建InputStreamReader对象?

要使用InputStreamReader读取文件内容,首先需要创建一个FileInputStream对象,然后将它作为InputStreamReader的构造函数的参数传入。在构造函数中,我们需要指定流的编码方式,以便InputStreamReader能够正确地解码字节流并将其转为字符流。如下所示:

代码语言:java
复制
String filePath = "test.txt";
String charset = "UTF-8";
InputStream inputStream = new FileInputStream(filePath);
Reader reader = new InputStreamReader(inputStream, charset);
 

在上面的代码中,我们创建了一个名为inputStream的FileInputStream对象,并将其作为InputStreamReader的构造函数的参数传入。构造函数的第二个参数charset指定了流的编码方式为UTF-8,这里我们使用了Java内置的UTF-8编码方式,当然也可以根据需要使用其他编码方式。

下面是使用InputStreamReader读取文件内容的示例代码:

代码语言:java
复制
package com.example.javase.io;

import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @date 2023/9/12 15:41
 */
@SpringBootTest
public class InputStreamReaderTest {
    
    @Test
    public void inputStreamReaderTest() throws IOException {
        FileInputStream fis = new FileInputStream("./template/hello.txt");
        InputStreamReader isr = new InputStreamReader(fis, "UTF-8");

        char[] buffer = new char[1024];
        int len;
        while ((len = isr.read(buffer)) != -1) {
            String content = new String(buffer, 0, len);
            System.out.println(content);
        }

        isr.close();
        fis.close();
    }
}

在上述代码中,我们使用了read()方法来读取文件中的字符,将读取的字符存储在缓冲区中,并且将缓冲区中的字符转换为字符串后输出到控制台中。同时,在程序结束前,我们也记得关闭了输入流对象和InputStreamReader对象,确保程序的正常执行和资源的释放。

如上示例代码执行结果如下:

在这里插入图片描述
在这里插入图片描述

附上读取文件:

在这里插入图片描述
在这里插入图片描述

代码方法介绍

在上述代码中,我们用到了以下方法:

  • InputStreamReader(InputStream in, String charsetName):创建InputStreamReader对象,指定输入流对象和字符编码。
  • read(char[] cbuf, int off, int len):读取字符,并将读取的字符存储在缓冲区中,返回读取的字符数。
  • new String(char[] value, int offset, int count):将缓冲区中的字符转换为字符串。

测试用例

为了验证上述代码的正确性,我们可以编写如下的测试用例:

代码语言:java
复制
    @Test
    public void inputStreamReaderTest() throws IOException {
        FileInputStream fis = new FileInputStream("./template/hello.txt");
        InputStreamReader isr = new InputStreamReader(fis, "UTF-8");

        char[] buffer = new char[1024];
        int len;
        while ((len = isr.read(buffer)) != -1) {
            String content = new String(buffer, 0, len);
            System.out.println(content);
        }

        isr.close();
        fis.close();
    }

在上述代码中,我们使用JUnit对InputStreamReader进行了测试。同时,我们还需要保证文件hello.txt存在,以便验证正确性。

全文小结

本文介绍了使用InputStreamReader读取文件内容的方法和步骤,并提供了示例代码、代码方法介绍、测试用例和全文小结。通过阅读本篇文章,相信您已经了解了如何使用InputStreamReader类来进行文本转换任务,并且熟悉了Java IO的相关知识和技能。

最后

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

... ...

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!

***

⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 摘要
  • 使用InputStreamReader读取文件内容
  • 如何创建InputStreamReader对象?
  • 代码方法介绍
  • 测试用例
  • 全文小结
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档