欢迎光临
我们一直在努力

java中inputstreamreader用法有哪些

Java中的InputStreamReader是一个字符流,它将字节流转换成字符流,InputStreamReader继承了InputStream抽象类,并实现了Reader接口,InputStreamReader的主要作用是将字节流转换为字符流,以便于我们进行字符级别的操作,下面我们来详细介绍一下Java中InputStreamReader的用法。

创建InputStreamReader对象

1、通过构造函数创建

InputStreamReader inputStreamReader = new InputStreamReader(inputStream);

2、通过指定编码格式创建

String encoding = "UTF-8";
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, encoding);

常用方法

1、read()方法:读取一个字符,返回int类型,如果已经到达文件末尾,则返回-1。

int ch = inputStreamReader.read();

2、readLine()方法:读取一行文本,返回一个字符串,当遇到换行符或者到达文件末尾时,返回null。

String line = inputStreamReader.readLine();

3、close()方法:关闭输入流,释放与该流相关联的所有系统资源。

inputStreamReader.close();

示例代码

import java.io.*;
public class InputStreamReaderDemo {
    public static void main(String[] args) {
        try {
            // 创建文件输入流
            FileInputStream fileInputStream = new FileInputStream("test.txt");
            // 创建InputStreamReader对象,指定编码格式为UTF-8
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
            // 读取一行文本
            String line = inputStreamReader.readLine();
            // 输出读取到的文本
            System.out.println("读取到的文本:" + line);
            // 关闭输入流
            inputStreamReader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

相关问题与解答

1、如何处理编码不正确的情况?

答:可以使用第三方库如Apache Commons IO中的IOUtils类的toString方法来处理编码不正确的情况,示例代码如下:

import org.apache.commons.io.IOUtils;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
public class ReadFileWithEncoding {
    public static void main(String[] args) throws IOException {
        try (FileInputStream fileInputStream = new FileInputStream("test.txt")) {
            String content = IOUtils.toString(fileInputStream, StandardCharsets.UTF_8);
            Scanner scanner = new Scanner(content);
            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            System.out.println("程序结束");
        }
    }
}
赞(0) 打赏
未经允许不得转载:九八云安全 » java中inputstreamreader用法有哪些

评论 抢沙发