欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的轉(zhuǎn)換流InputStreamReader解讀

 更新時(shí)間:2024年09月26日 15:40:51   作者:程序研  
InputStreamReader是Java.io包中的一個(gè)類,用于將字節(jié)輸入流轉(zhuǎn)換為字符輸入流,它繼承自java.io.Reader類,提供了兩種構(gòu)造方法,可以使用默認(rèn)或指定字符集創(chuàng)建實(shí)例,常用方法包括讀取字符、判斷是否準(zhǔn)備好讀取數(shù)據(jù)和關(guān)閉流

Java轉(zhuǎn)換流InputStreamReader

1. InputStreamReader 簡介

InputStreamReader 是 Java.io 包中的一個(gè)類,它繼承了 java.io.Reader 類。

其主要作用是將字節(jié)輸入流轉(zhuǎn)換為字符輸入流。

在進(jìn)行文件讀寫操作時(shí),如果遇到不同編碼格式,可以使用 InputStreamReader 進(jìn)行處理。

2. InputStreamReader 構(gòu)造方法

InputStreamReader 提供了以下兩個(gè)構(gòu)造方法:

  • (1)InputStreamReader(InputStream in) 使用默認(rèn)字符集創(chuàng)建一個(gè) InputStreamReader 實(shí)例。
  • (2)InputStreamReader(InputStream in, Charset cs) 使用指定的字符集創(chuàng)建一個(gè) InputStreamReader 實(shí)例。

3. InputStreamReader 常用方法

以下是 InputStreamReader 的一些常用方法:

  • (1)int read() 讀取一個(gè)字符,返回讀取的字符,如果達(dá)到文件末尾,則返回 -1。
  • (2)int read(char[] cbuf, int offset, int length) 將字符讀入數(shù)組的一部分,返回讀取的字符數(shù),如果達(dá)到文件末尾,則返回 -1。
  • (3)boolean ready() 判斷 InputStreamReader 是否準(zhǔn)備好讀取數(shù)據(jù)。
  • (4)void close() 關(guān)閉 InputStreamReader 并釋放相關(guān)資源。

4. 代碼示例及運(yùn)行結(jié)果

以下是一個(gè)簡單的示例,演示如何使用 InputStreamReader 讀取一個(gè)文本文件:

import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.IOException;
public class InputStreamReaderExample {
    public static void main(String[] args) {
        try {
            // 創(chuàng)建 FileInputStream 實(shí)例
            FileInputStream fis = new FileInputStream("example.txt");
            
            // 創(chuàng)建 InputStreamReader 實(shí)例,使用默認(rèn)字符集
            InputStreamReader isr = new InputStreamReader(fis);
            
            // 讀取文件內(nèi)容
            int data;
            while ((data = isr.read()) != -1) {
                System.out.print((char) data);
            }
            
            // 關(guān)閉流
            isr.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

假設(shè) example.txt 文件內(nèi)容如下:

Hello, World!
你好,世界!

運(yùn)行上述代碼,輸出結(jié)果如下:

Hello, World!
你好,世界!

接下來,我們使用指定字符集讀取文件:

import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.nio.charset.Charset;
public class InputStreamReaderExample2 {
    public static void main(String[] args) {
        try {
            // 創(chuàng)建 FileInputStream 實(shí)例
            FileInputStream fis = new FileInputStream("example.txt");
            
            // 創(chuàng)建 InputStreamReader 實(shí)例,指定字符集為 UTF-8
            InputStreamReader isr = new InputStreamReader(fis, Charset.forName("UTF-8"));
            
            // 讀取文件內(nèi)容
            int data;
            while ((data = isr.read()) != -1) {
                System.out.print((char) data);
            }
            
            // 關(guān)閉流
            isr.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

運(yùn)行結(jié)果與上一個(gè)示例相同,因?yàn)?example.txt 文件的編碼格式為 UTF-8。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解SpringBoot?統(tǒng)一后端返回格式的方法

    詳解SpringBoot?統(tǒng)一后端返回格式的方法

    今天我們來聊一聊在基于SpringBoot前后端分離開發(fā)模式下,如何友好的返回統(tǒng)一的標(biāo)準(zhǔn)格式以及如何優(yōu)雅的處理全局異常,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-05-05
  • java實(shí)現(xiàn)對excel文件的處理合并單元格的操作

    java實(shí)現(xiàn)對excel文件的處理合并單元格的操作

    這篇文章主要介紹了java實(shí)現(xiàn)對excel文件的處理合并單元格的操作,開頭給大家介紹了依賴引入代碼,表格操作的核心代碼,代碼超級簡單,需要的朋友可以參考下
    2021-07-07
  • java常見報(bào)錯(cuò):Array?Out?of?Bounds兩種解決辦法

    java常見報(bào)錯(cuò):Array?Out?of?Bounds兩種解決辦法

    這篇文章主要給大家介紹了關(guān)于java報(bào)錯(cuò)Array?Out?of?Bounds的兩種解決辦法,Array out of bounds錯(cuò)誤表示你嘗試訪問數(shù)組中不存在的索引,即索引小于零或者大于等于數(shù)組的大小,文中通過代碼將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • JDBC連接MYSQL分步詳解

    JDBC連接MYSQL分步詳解

    JDBC是指Java數(shù)據(jù)庫連接,是一種標(biāo)準(zhǔn)Java應(yīng)用編程接口(?JAVA?API),用來連接?Java?編程語言和廣泛的數(shù)據(jù)庫。從根本上來說,JDBC?是一種規(guī)范,它提供了一套完整的接口,允許便攜式訪問到底層數(shù)據(jù)庫,本篇文章我們來了解MySQL連接JDBC的流程方法
    2022-03-03
  • JDK8新特性-java.util.function-Function接口使用

    JDK8新特性-java.util.function-Function接口使用

    這篇文章主要介紹了JDK8新特性-java.util.function-Function接口使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 解讀CompletableFuture的底層原理

    解讀CompletableFuture的底層原理

    本文探討了Java8中CompletableFuture的原理和應(yīng)用,詳解其異步編程能力、工作機(jī)制及實(shí)際使用方法,CompletableFuture通過鏈?zhǔn)秸{(diào)用和狀態(tài)管理優(yōu)化異步任務(wù),提高Java應(yīng)用的效率和性能
    2024-09-09
  • Java Restful API的攔截詳解

    Java Restful API的攔截詳解

    這篇文章主要介紹了Java 調(diào)用Restful API接口的攔截,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-09-09
  • Json字符串內(nèi)容比較超實(shí)用教程

    Json字符串內(nèi)容比較超實(shí)用教程

    這篇文章主要介紹了Json字符串內(nèi)容比較-超實(shí)用版,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Java如何實(shí)現(xiàn)壓縮文件與解壓縮zip文件

    Java如何實(shí)現(xiàn)壓縮文件與解壓縮zip文件

    這篇文章主要介紹了Java如何實(shí)現(xiàn)壓縮文件與解壓縮zip文件問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • sun?unsafe類功能及使用注意事項(xiàng)詳解

    sun?unsafe類功能及使用注意事項(xiàng)詳解

    這篇文章主要為大家介紹了unsafe類的功能及在使用中需要注意的事項(xiàng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-01-01

最新評論