Java文件字符輸入流FileReader讀取txt文件亂碼的解決
Java文件字符輸入流FileReader讀取txt文件亂碼
先上代碼
public class FileInAndOut { public static void main(String[] args) { //定義指定磁盤的文件的File對(duì)象 File file = new File("E:/大三下學(xué)期/Android/作業(yè)要求/java知識(shí)鞏固/work5.txt"); if(! file.exists()){ System.out.println("對(duì)不起,不包含指定路徑的文件"); }else{ //根據(jù)指定路徑的File對(duì)象創(chuàng)建FileReader對(duì)象 try { FileReader fr = new FileReader(file); char[] data = new char[51]; //定義char數(shù)組 int length = 0; while((length = fr.read(data))>0){ //循環(huán)讀取文件中的數(shù)據(jù) String str = new String(data,0,length); //根據(jù)讀取文件的內(nèi)容創(chuàng)建String 對(duì)象 System.out.println(str); //輸出讀取內(nèi)容 } fr.close(); //關(guān)閉流 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
控制臺(tái)輸出結(jié)果如下
原因是
Java中的字符流處理的最基本的單元是Unicode碼元(大小2字節(jié)),所以,我們?cè)诒4娴臅r(shí)候要將文件的編碼格式改為utf-8
運(yùn)行之后的結(jié)果為
字符流讀取UTF-8和寫出txt文件亂碼問題
亂碼問題一直都是非常難受的問題,本文解決Java中使用字符流讀取UTF-8和寫出txt文件 亂碼
話不多說,直接上圖
輸出結(jié)果:
使用代碼:
解決
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解spring cloud config整合gitlab搭建分布式的配置中心
這篇文章主要介紹了詳解spring cloud config整合gitlab搭建分布式的配置中心,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01Java中Stringbuilder和正則表達(dá)式示例詳解
Java語言為字符串連接運(yùn)算符(+)提供特殊支持,并為其他對(duì)象轉(zhuǎn)換為字符串,字符串連接是通過StringBuilder(或StringBuffer)類及其append方法實(shí)現(xiàn)的,這篇文章主要給大家介紹了關(guān)于Java中Stringbuilder和正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下2024-02-02Unity&Springboot實(shí)現(xiàn)本地登陸驗(yàn)證
本文主要介紹了Unity&Springboot服務(wù)器/本地登陸驗(yàn)證,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07IDEA下SpringBoot指定配置文件啟動(dòng)項(xiàng)目的全過程
我們?cè)谑褂胹pringboot項(xiàng)目開發(fā)的時(shí)候,每次切換環(huán)境跑項(xiàng)目的時(shí)候,都得修改配置文件的數(shù)據(jù)庫(kù)地址,這樣來回修改感覺很麻煩,這篇文章主要給大家介紹了關(guān)于IDEA下SpringBoot指定配置文件啟動(dòng)項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-06-06java實(shí)現(xiàn)多設(shè)備同時(shí)登錄或強(qiáng)制下線
本文主要介紹了java實(shí)現(xiàn)多設(shè)備同時(shí)登錄或強(qiáng)制下線,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07