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("程序结束"); } } }
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/274451.html