最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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 簡(jiǎn)介

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è)簡(jiǎn)單的示例,演示如何使用 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)文章

  • Spring Cloud Gateway內(nèi)置的斷言和過濾器作用說明

    Spring Cloud Gateway內(nèi)置的斷言和過濾器作用說明

    這篇文章主要介紹了Spring Cloud Gateway內(nèi)置的斷言和過濾器作用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java中的內(nèi)存泄漏與避免指南

    Java中的內(nèi)存泄漏與避免指南

    在Java開發(fā)中,內(nèi)存管理是不可忽視的重要課題之一,雖然Java的垃圾回收機(jī)制(GC)大大簡(jiǎn)化了內(nèi)存管理的復(fù)雜度,但隨著程序的不斷增長(zhǎng)和復(fù)雜度的增加,內(nèi)存泄漏的問題依然常常困擾著開發(fā)者,本文將深入探討內(nèi)存泄漏的概念、成因,并介紹一些常見的檢測(cè)工具和最佳實(shí)踐
    2025-09-09
  • SpringBoot集成IJPay實(shí)現(xiàn)微信v3支付的示例代碼

    SpringBoot集成IJPay實(shí)現(xiàn)微信v3支付的示例代碼

    本文主要介紹了SpringBoot集成IJPay實(shí)現(xiàn)微信v3支付的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的問題解析

    SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的問題解析

    這篇文章主要介紹了SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的問題解析,在SpringBoot工程中引入Druid連接池非常簡(jiǎn)單,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-07-07
  • Java設(shè)計(jì)模式之模板方法詳解

    Java設(shè)計(jì)模式之模板方法詳解

    模板方法的概念:定義了一個(gè)操作中的算法的骨架,而將部分步驟的實(shí)現(xiàn)在子類中完成。模板方法模式使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟
    2022-07-07
  • java中最易犯錯(cuò)的特殊字符示例詳解

    java中最易犯錯(cuò)的特殊字符示例詳解

    這篇文章主要給大家介紹了關(guān)于java中最易犯錯(cuò)的特殊字符的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java?switch?case語(yǔ)句舉例詳解

    Java?switch?case語(yǔ)句舉例詳解

    這篇文章主要給大家介紹了關(guān)于Java?switch?case語(yǔ)句舉例詳解的相關(guān)資料,switch case語(yǔ)句是一種流程控制語(yǔ)句,用于根據(jù)不同的條件執(zhí)行不同的代碼塊,需要的朋友可以參考下
    2023-10-10
  • Java經(jīng)典面試題匯總:Spring

    Java經(jīng)典面試題匯總:Spring

    本篇總結(jié)的是Spring框架相關(guān)的面試題,后續(xù)會(huì)持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實(shí)習(xí)生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯(cuò)誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07
  • Springboot如何同時(shí)裝配兩個(gè)相同類型數(shù)據(jù)庫(kù)

    Springboot如何同時(shí)裝配兩個(gè)相同類型數(shù)據(jù)庫(kù)

    這篇文章主要介紹了Springboot如何同時(shí)裝配兩個(gè)相同類型數(shù)據(jù)庫(kù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中String字符串常量池和intern方法源碼分析

    Java中String字符串常量池和intern方法源碼分析

    在之前的文章中,小編給大家介紹了String字符串的不可變性及其實(shí)現(xiàn)原理,其中給大家提到了字符串常量池的概念,那么什么是常量池,String字符串與常量池有什么關(guān)系,本文給大家嘮嘮字符串常量池及String#intern()方法的作用,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

襄城县| 商河县| 正阳县| 中宁县| 万源市| 太谷县| 垣曲县| 武邑县| 高唐县| 德昌县| 湟源县| 大兴区| 东港市| 长兴县| 富顺县| 德格县| 时尚| 卓资县| 文成县| 栾川县| 安岳县| 林芝县| 祥云县| 兰州市| 宣威市| 广饶县| 秭归县| 余干县| 扬州市| 辽源市| 天祝| 襄汾县| 大庆市| 桦甸市| 伽师县| 榆中县| 舞阳县| 新和县| 望谟县| 汕尾市| 彰武县|