那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

幾種常用Reader輸入流的使用方式

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-10 15:46 ? 次閱讀

上次聊到了 java 的字節(jié)流 InputStream,今天來看看它的好朋友 Reader 字符流。

Reader

java 中的 IO 輸入流不是只有 InputStream 還有按字符輸入的 Reader。

InputStreamReader
字節(jié)流,以 byte 為單位字符流,以 char 為單位
讀取字節(jié)(-1,0~255):int read()讀取字符(-1,0~65535):int read()
讀到字節(jié)數(shù)組:int read(byte[] b)讀到字符數(shù)組:int read(char[] c)

和 InputStream 一樣,Reader 也是所有字符輸入流的超類。主要的方法是:public int read() throws IOException,read() 讀取字符流中的下一個(gè)字符,返回 0-65535 的 int 類型數(shù)值, 返回 -1 表示已經(jīng)讀取結(jié)束。

FileReader

FileReader 打開一個(gè)文件并獲取到文件的字符流。FileReader 用于讀取文件中的內(nèi)容。

private void fileReaderDemo() throws Exception {
    Reader reader = new FileReader("D:
eaderDemo.txt");
    int n;
    while ((n = reader.read()) != -1) {
        System.out.print((char)n);
    }
    reader.close();
}

Reader 實(shí)現(xiàn)了 Closeable 接口,可以用 try(Reader reader = new FileReader("D: eaderDemo.txt")) {} 的方式關(guān)閉掉資源。

InputStreamReader

InputStreamReader 就是將 InputStream 讀取的字節(jié)流裝換為 Reader 的字符流。可以把任意的 InputStream 轉(zhuǎn)換為 Reader,F(xiàn)ileReader 就繼承自 InputStreamReader。在創(chuàng)建 InputStreamReader 實(shí)例對(duì)象的時(shí)候可以指定字符集,以防止亂碼。

private void inputStreamReaderDemo() throws Exception {
    InputStream inputStream = new FileInputStream("D:
eaderDemo.txt");
    try(Reader reader = new InputStreamReader(inputStream, "utf-8")) {
        int n;
        while ((n = reader.read()) != -1) {
            System.out.print((char)n);
        }
    }
}

StringReader 和 CharArrayReader

FileReader 是將文件作為一個(gè)讀取源,StringReader 將 string 字符串作為一個(gè)讀取源。

private void stringReaderDemo() throws Exception {
    try(Reader reader =  new StringReader("這是測(cè)試代碼")) {
        char[] buffer = new char[1024];
        while ((reader.read(buffer)) != -1) {
            System.out.print(buffer);
        }
    }
}

reader.read(char[] buffer) 是 reader 讀取字符流的重載方法,將內(nèi)容不在是一個(gè) char 一個(gè) char 的輸出,而是將內(nèi)容讀取到緩沖區(qū) buffer 后一次性輸出。

CharArrayReader 和 StringReader 幾乎一樣,調(diào)用方法變成了 try(Reader reader = new CharArrayReader("這是測(cè)試代碼".toCharArray()))

BufferedReader

提供通用的緩沖方式讀取文本并且提供了 readLine() 讀取了一個(gè)文本行。從字符輸入流中讀取文本,緩沖各個(gè)字符,從而提供字符、數(shù)組和行的高效讀取。

private void bufferedReaderDemo() throws Exception {
    try(BufferedReader reader =  new BufferedReader(new FileReader("D:
eaderDemo.txt"))) {
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
    }
}

總結(jié)

介紹了幾種常用 Reader 輸入流的使用方式。FileReader 用于文件讀取,BufferedReader 自帶緩沖區(qū)讀取效率高,StringReader 和 CharArrayReader 可以讀取字符串源,InputStreamReader 將 InputStream 轉(zhuǎn)為 Reader。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8691

    瀏覽量

    151911
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    570

    瀏覽量

    24821
  • 字符
    +關(guān)注

    關(guān)注

    0

    文章

    234

    瀏覽量

    25262
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4825

    瀏覽量

    69043
  • reader
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    8711
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    幾種常用單片機(jī)之間的通信方式

    幾種常用單片機(jī)之間的通信方式利用鐵電存儲(chǔ)器作為數(shù)據(jù)緩沖器的通信方式
    發(fā)表于 03-17 07:45

    請(qǐng)問八層板常用的疊層方式有哪幾種?

    八層板常用的疊層方式有哪幾種
    發(fā)表于 04-25 07:16

    單片機(jī)常用的通信方式有哪幾種?

    幾種常用單片機(jī)之間的通信方式利用鐵電存儲(chǔ)器作為數(shù)據(jù)緩沖器的通信方式
    發(fā)表于 05-27 06:45

    電流互感器常用的接線方式有哪幾種

    電流繼電器的動(dòng)作電流是什么意思?電流互感器常用的接線方式有哪幾種?
    發(fā)表于 09-27 09:12

    幾種常用單片機(jī)之間的通信方式

    幾種常用單片機(jī)之間的通信方式①采用硬件UART進(jìn)行異步串行通信。這是一種占用口線少,有效、可靠的通信方式;但遺憾的是許多小型單片機(jī)沒有硬件UART,有些也只有1個(gè)UART,如果系統(tǒng)還要
    發(fā)表于 11-25 07:14

    幾種常用的IO輸入輸出方式是什么?

    幾種常用的IO輸入輸出方式是什么?
    發(fā)表于 12-21 07:06

    WINCC連接Siemens PLC的常用方式

    WINCC連接Siemens PLC的常用方式 WinCC上位組態(tài)軟件和西門子PLC建立通訊的幾種方法
    發(fā)表于 02-24 09:09 ?81次下載

    AutoCAD中輸入Φ的的常用方法

    AutoCAD中輸入Φ的的常用方法 總結(jié)了一下,在AutoCAD中Φ的的常用輸入法大致有以下幾種:方法1、%%C 方法2、鼠標(biāo)右擊——符
    發(fā)表于 11-08 10:24 ?1533次閱讀

    常用幾種管道檢測(cè)方法

    常用幾種管道檢測(cè)方法  管道運(yùn)輸是石油、天然氣運(yùn)輸采用的主要方式。目前,在我國近70%的原油、100%的天然氣是通過管道來進(jìn)行運(yùn)輸
    發(fā)表于 03-20 11:50 ?1.1w次閱讀

    通信開關(guān)電源整流器幾種常用散熱方式

    本文介紹通信開關(guān)電源冷卻技術(shù)的設(shè)計(jì)對(duì)通信機(jī)房環(huán)境和溫度變化的適應(yīng)性要求,并給出目前整流器常用幾種冷卻方式及其分析比較。
    發(fā)表于 01-04 15:12 ?1039次閱讀

    常用單片機(jī)通信方式綜述

    幾種常用單片機(jī)之間的通信方式
    的頭像 發(fā)表于 08-06 11:56 ?5230次閱讀

    常用幾種無線網(wǎng)絡(luò)組網(wǎng)方式介紹

    無線網(wǎng)絡(luò)系統(tǒng)在我們?nèi)蹼婍?xiàng)目中經(jīng)常用到,每個(gè)項(xiàng)目對(duì)于無線網(wǎng)絡(luò)的需求不一樣的,也就是不同的項(xiàng)目不同的應(yīng)用場(chǎng)景,今天分享一下常用幾種無線網(wǎng)絡(luò)組網(wǎng)方式。
    的頭像 發(fā)表于 11-15 09:45 ?1.3w次閱讀

    C++的輸入流和輸出流介紹

    C++的輸入流和輸出流是C++標(biāo)準(zhǔn)庫中的兩個(gè)重要的流類,分別用于輸入和輸出數(shù)據(jù)。在本篇博客中,我們將詳細(xì)介紹C++的輸入流和輸出流,包括流的概念、流的類型、流的操作和流的應(yīng)用等方面。
    的頭像 發(fā)表于 04-30 17:58 ?2173次閱讀

    西門子PLC常用幾種加密方式

    【導(dǎo)讀】分享西門子PLC常用幾種加密方式,看看你喜歡哪一種?
    的頭像 發(fā)表于 07-13 09:32 ?1537次閱讀
    西門子PLC<b class='flag-5'>常用</b>的<b class='flag-5'>幾種</b>加密<b class='flag-5'>方式</b>

    PLC模擬量的信號(hào)輸入流

    從以上PLC模擬量的信號(hào)輸入流程可以看到,在自動(dòng)化過程控制系統(tǒng)中,模擬量信號(hào)的輸入是非常復(fù)雜的。但是,在現(xiàn)目前的工業(yè)現(xiàn)場(chǎng),對(duì)模擬量信號(hào)的處理已基本都采用電流信號(hào)方式進(jìn)行傳輸,相比于電壓信號(hào)方式
    發(fā)表于 07-31 17:11 ?2次下載
    百家乐赌博在线娱乐| BET365体育在线| 百家乐官网娱乐真钱游戏| 91百家乐的玩法技巧和规则| 皇室百家乐官网娱乐城| 百家乐透视牌靴哪里有| 圣淘沙百家乐官网现金网| 蓝盾百家乐官网平台| 德州扑克荷官| 百家乐开户博彩论坛| 百家乐官网技术秘籍| 百家乐单机游戏下| 百家乐官网庄闲必胜手段| 威尼斯人娱乐城平台| 哪个百家乐官网玩法平台信誉好 | 牌九百家乐官网的玩法技巧和规则 | 真人百家乐网络游戏信誉怎么样| 百家乐官网赌场规则| 大发888娱乐城大发888达法8| 做生意怎样看风水| 建瓯市| 网上百家乐群的微博| 玩百家乐官网游戏的最高技巧| 波音平台| 百家乐赌博娱乐城大全| 凯发百家乐官网是否是程序控制| 大发888更名网址622| 博网百家乐现金网| 澳门百家乐官网娱乐开户| 大发888网页登录帐号| 网页百家乐| 玩百家乐官网技巧博客| 大发888缺casino组件| 百家乐作弊工具| 百家乐官网注册开户送现金 | 百家乐追号软件| 百家乐官网公式分析| 威尼斯人娱乐场28gxpjwnsr| 百家乐游戏公司| 百家乐官网网络赌博地址| 棋牌英雄传|