电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

idea中使用Inputstream流導致中文亂碼解決方法

瀏覽:11日期:2024-07-09 17:59:47
1.問題描述

idea中使用Inputstream流導致中文亂碼解決方法,當然也不一定就是輸入流,可能輸出流或者其他用到了流相關的字符的都可能出現亂碼,這里有一個可能的解決辦法。

2. 解決辦法

① idea中找到下面的路徑

File--Settings--Editor--File Encodings

② Transparent native-to-ascii conversion把這個前面勾上,重新創建文件,執行就OK

idea中使用Inputstream流導致中文亂碼解決方法

很多朋友遇到Java FileInputStream讀中文亂碼問題,下面小編在給大家普及下這方便的知識及解決方法。

1、前提

以讀取編碼是GBK的文件為案例,文件內容只有中文和中文符號

2、原因

FileInputStream讀中文亂碼是因為一個中文對應兩個字節存儲(負數),也就是說,讀取對應中文的字節數應該是偶數; 而英文對應一個字節存儲。FileInputStream每次讀取一個數組長度的字節時,讀取的中文字節數可能是奇數,也就是只讀到中文的一半字節,出現亂碼。

3、解決方法

一次讀取所有字節,此方法不靠譜,因為不確定總字節數。

在輸出時進行判斷,遍歷數組判斷負數的個數,如果是奇數,說明讀取到中文的一半字節,對數組進行擴容再輸出;否則正常輸出

4、代碼案例

package 第二題;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Arrays;​public class MainTest {​public static void main(String[] args) throws UnsupportedEncodingException {// 創建File對象File file = new File('D:filetestfile4.txt');FileInputStream fileInputStream = null;try {// 新建一個FileInputStream對象fileInputStream = new FileInputStream(file);// 新建一個字節數組byte[] buf = new byte[2];// read(buf):此方法的返回值就是當前讀取的字節個數,將數據讀取到buf數組// 將readLen變量也就是read方法的返回值,當此變量等于-1,則讀到文件末尾int readLen = -1;//讀取文件數據while ((readLen = fileInputStream.read(buf)) != -1) {int pos=0;//記錄負數的個數for(byte v:buf){if(v<0){pos++;}}//負數個數為偶數,讀取完整,沒有讀取到半個中文if(pos%2==0){// 將字節數組轉換成字符串String content = new String(buf, 0, readLen);System.out.print(content);}else {//負數個數為奇數,讀取不完整,會亂碼//再讀取下一位字節int nextByteValue=fileInputStream.read();int nextLen=readLen+1;//字節數組擴容一位buf= Arrays.copyOf(buf,nextLen);buf[readLen]= (byte) nextByteValue;String content=new String(buf,0,nextLen);System.out.print(content);//奇數,字節補全//針對數組擴容一個字節單元/* buf=Arrays.copyOf(buf, readLen+1);int nextByteValue=fileInputStream.read();buf[readLen]= (byte) nextByteValue;String content = new String(buf, 0, readLen);System.out.print(content);*/}}} catch (FileNotFoundException e) {// 輸出堆棧信息e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {// 文件輸入流關閉(釋放資源)fileInputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

以上就是idea中使用Inputstream流導致中文亂碼解決方法的詳細內容,更多關于idea Inputstream流亂碼的資料請關注好吧啦網其它相關文章!

標簽: IDEA
相關文章:
主站蜘蛛池模板: 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 北京浩云律师事务所-法律顾问_企业法务_律师顾问_公司顾问 | 塑胶地板-商用PVC地板-pvc地板革-安耐宝pvc塑胶地板厂家 | 废气处理设备-工业除尘器-RTO-RCO-蓄热式焚烧炉厂家-江苏天达环保设备有限公司 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 重庆私家花园设计-别墅花园-庭院-景观设计-重庆彩木园林建设有限公司 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 深圳活动策划公司|庆典策划|专业公关活动策划|深圳艺典文化传媒 重庆中专|职高|技校招生-重庆中专招生网 | 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 安徽泰科检测科技有限公司【官方网站】| 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 坏男孩影院-提供最新电影_动漫_综艺_电视剧_迅雷免费电影最新观看 | 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 立式矫直机_卧式矫直机-无锡金矫机械制造有限公司 | 重庆私家花园设计-别墅花园-庭院-景观设计-重庆彩木园林建设有限公司 | 江苏南京多语种翻译-专业翻译公司报价-正规商务翻译机构-南京华彦翻译服务有限公司 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 必胜高考网_全国高考备考和志愿填报信息平台 | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 | 123悬赏网_发布悬赏任务_广告任务平台 | 郑州墨香品牌设计公司|品牌全案VI设计公司 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 棉服定制/厂家/公司_棉袄订做/价格/费用-北京圣达信棉服 | 成都离婚律师|成都结婚律师|成都离婚财产分割律师|成都律师-成都离婚律师网 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 河南中整光饰机械有限公司-抛光机,去毛刺抛光机,精密镜面抛光机,全自动抛光机械设备 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 成人纸尿裤,成人尿不湿,成人护理垫-山东康舜日用品有限公司 | 四探针电阻率测试仪-振实密度仪-粉末流动性测定仪-宁波瑞柯微智能 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 |