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

Java中ByteArrayOutputStream亂碼問題解決

 更新時(shí)間:2023年07月21日 09:47:44   作者:鑫鑫同學(xué)~  
本文主要介紹了Java中ByteArrayOutputStream亂碼問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

當(dāng)我們獲取文件,通過輸入流讀取數(shù)據(jù),并返回字符串回去

public String readFiles(String fileName){
        FileInputStream inputStream = null;
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        String result = "";
        try{
            inputStream = openFileInput(fileName);
            int len = 0;
            byte[] date = new byte[4];
            while ((len = inputStream.read(date)) != -1){
                outputStream.write(date);
            }
            byte[] bytes = outputStream.toByteArray();
            result = new String(bytes);
            inputStream.close();
            outputStream.close();
        }catch (Exception e){
            e.printStackTrace();
        }
        return result;
    }

測試文件內(nèi)容:

測試測試內(nèi)容

測試情況:

測試測試內(nèi)容??????????????

亂碼原因:

當(dāng)編碼為UTF-8時(shí),漢字Java讀入漢字占3~4個(gè)字節(jié),在這里我們每個(gè)漢字占3個(gè)字節(jié),那么6個(gè)漢字需要18個(gè)字節(jié)。
由于我們每次都讀入4個(gè)字節(jié),那么讀取6次所產(chǎn)生的字節(jié)就是24個(gè),多出來的字節(jié)自然就亂碼了。
此時(shí)我們就需要將每次讀取的數(shù)據(jù)的長度寫入到緩沖區(qū)并拼接起來,而不是每次直接輸出緩存的數(shù)據(jù)

代碼如下:

public String readFiles(String fileName){
        FileInputStream inputStream = null;
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        String result = "";
        try{
            inputStream = openFileInput(fileName);
            int len = 0;
            byte[] date = new byte[4];
            while ((len = inputStream.read(date)) != -1){
                //將每一次的數(shù)據(jù)寫入緩沖區(qū)
                outputStream.write(date,0,len);
            }
            byte[] bytes = outputStream.toByteArray();
            result = new String(bytes);
            inputStream.close();
            outputStream.close();
        }catch (Exception e){
            e.printStackTrace();
        }
        return result;
    }

測試結(jié)果:

測試測試內(nèi)容

到此這篇關(guān)于Java中ByteArrayOutputStream亂碼問題解決的文章就介紹到這了,更多相關(guān)Java ByteArrayOutputStream亂碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 小白也可以學(xué)會的Java NIO的Write事件

    小白也可以學(xué)會的Java NIO的Write事件

    剛開始對NIO的寫操作理解的不深,不知道為什么要注冊寫事件,何時(shí)注冊寫事件,為什么寫完之后要取消注冊寫事件,今天特地整理了本篇文章,需要的朋友可以參考下
    2021-06-06
  • java servlet結(jié)合Oracle搭建java的web開發(fā)環(huán)境

    java servlet結(jié)合Oracle搭建java的web開發(fā)環(huán)境

    今天我將與大家分享一下我學(xué)JAVA WEB寫的一些小實(shí)例 ,我個(gè)人是不太喜歡書本上的晦澀的概念的,所以我花了更多的時(shí)間在一些應(yīng)用實(shí)例上,我覺得這樣的學(xué)習(xí)方式很適合我,由簡到繁,由淺入深
    2015-12-12
  • Springboot整合JPA配置多數(shù)據(jù)源流程詳解

    Springboot整合JPA配置多數(shù)據(jù)源流程詳解

    這篇文章主要介紹了Springboot整合JPA配置多數(shù)據(jù)源,JPA可以通過實(shí)體類生成數(shù)據(jù)庫的表,同時(shí)自帶很多增刪改查方法,大部分sql語句不需要我們自己寫,配置完成后直接調(diào)用方法即可,很方便
    2022-11-11
  • java中vector與hashtable操作實(shí)例分享

    java中vector與hashtable操作實(shí)例分享

    java中vector與hashtable操作實(shí)例,有需要的朋友可以參考一下
    2014-01-01
  • Java動態(tài)代理的示例詳解

    Java動態(tài)代理的示例詳解

    動態(tài)代理指的是,代理類和目標(biāo)類的關(guān)系在程序運(yùn)行的時(shí)候確定的,客戶通過代理類來調(diào)用目標(biāo)對象的方法,是在程序運(yùn)行時(shí)根據(jù)需要動態(tài)的創(chuàng)建目標(biāo)類的代理對象。本文將通過案例詳細(xì)講解一下動態(tài)代理,需要的可以參考一下
    2022-02-02
  • spring boot 不連接數(shù)據(jù)庫啟動的解決

    spring boot 不連接數(shù)據(jù)庫啟動的解決

    這篇文章主要介紹了spring boot 不連接數(shù)據(jù)庫啟動的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java筆記學(xué)習(xí)之操作符

    java筆記學(xué)習(xí)之操作符

    本篇文章給大家分享了關(guān)于Java中操作符的相關(guān)知識點(diǎn)以及難點(diǎn)總結(jié),有需要的朋友參考學(xué)習(xí)下吧。
    2018-04-04
  • springboot詳解實(shí)現(xiàn)車險(xiǎn)理賠信息管理系統(tǒng)代碼

    springboot詳解實(shí)現(xiàn)車險(xiǎn)理賠信息管理系統(tǒng)代碼

    本系統(tǒng)基于Springboot開發(fā)實(shí)現(xiàn)了一個(gè)為用戶車險(xiǎn)進(jìn)行理賠信息管理的一個(gè)信息化管理系統(tǒng),核心的業(yè)務(wù)主要是用戶申請保險(xiǎn)理賠,管理員審核進(jìn)入理賠程序,事故調(diào)查員對事故進(jìn)行調(diào)查和現(xiàn)場勘察,這其中共涉及到三類用戶,購買保險(xiǎn)的客戶,事故調(diào)查員和系統(tǒng)管理員
    2022-06-06
  • SpringBoot項(xiàng)目Web攔截器使用的多種方式

    SpringBoot項(xiàng)目Web攔截器使用的多種方式

    在Spring?Boot應(yīng)用中,Web攔截器(Interceptor)是一種用于在請求處理的不同階段執(zhí)行自定義邏輯的機(jī)制,下面給大家介紹SpringBoot項(xiàng)目Web攔截器使用的多種方式,感興趣的朋友一起看看吧
    2025-05-05
  • maven依賴傳遞和依賴沖突原理

    maven依賴傳遞和依賴沖突原理

    這篇文章主要介紹了maven依賴傳遞和依賴沖突原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評論

枣庄市| 沙河市| 五指山市| 永平县| 凯里市| 沙雅县| 梨树县| 遂宁市| 仲巴县| 锡林郭勒盟| 扎兰屯市| 古交市| 中阳县| 太原市| 济南市| 丹棱县| 望谟县| 吉隆县| 百色市| 崇明县| 襄樊市| 绥滨县| 乐安县| 勃利县| 哈巴河县| 新营市| 万州区| 康保县| 红河县| 甘洛县| 白山市| 南丹县| 永福县| 九寨沟县| 朔州市| 五峰| 长兴县| 吉安市| 黄石市| 旺苍县| 萨嘎县|