欢迎来到天天文库
浏览记录
ID:62152766
大小:45.50 KB
页数:3页
时间:2021-04-19
《java自动根据文件内容的编码来读取避免乱码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、个人收集整理勿做商业用途java自动根据文件内容的编码来读取避免乱码通过cpdetector这个开源的jar包可以自动判断当前文件的内容编码,从而在读取的时候选择正确的编码读取,避免乱码问题。 测试结果,提供截图: GBK文件内容UTF8文件内容 运行结果:packagecom.zuidaima.test; importinfo.monitorenter.cpdetector.io.ASCIIDetector; importinfo.monitorenter.cpdetector.io.CodepageDetectorProxy; importinfo.moni
2、torenter.cpdetector.io.JChardetFacade; importinfo.monitorenter.cpdetector.io.ParsingDetector;import info.monitorenter.cpdetector.io.UnicodeDetector; import java.io.BufferedReader; importjava.io.File; importjava.io.FileInputStream;importjava.io.InputStreamReader;个人收集整理勿做商业用途public class
3、Main{ public static StringgetContent(Stringpath)throwsException{ Filefile=newFile(path); CodepageDetectorProxydetector=CodepageDetectorProxy.getInstance();detector.add(new ParsingDetector(false)); detector.add(JChardetFacade.getInstance());detector.add(ASCIIDetector.getInstance()); det
4、ector.add(UnicodeDetector.getInstance()); java.nio.charset.Charsetcharset=null; try{ charset= detector.detectCodepage(file.toURI()。toURL()); }catch(Exceptionex) { ex.printStackTrace();} String charsetName= null; if(charset!=null) { charsetName=charset.name(); }else{ charsetName = "U
5、TF-8";}BufferedReaderreader=new BufferedReader(newInputStreamReader(个人收集整理勿做商业用途 new FileInputStream(file),charsetName)); Stringline =null; Stringlines=""; while((line=reader.readLine()) !=null){ lines+=line+"n"; } reader.close(); returnlines;} public static voidmain(String[]args)thro
6、wsException{System.out.println(getContent("bin/gbk.txt")); System.out.println(getContent("bin/utf8.txt"));} }
此文档下载收益归作者所有