问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java如何获得文件编码格式_第2页

发布网友 发布时间:2022-05-17 11:44

我来回答

1个回答

热心网友 时间:2023-08-21 12:44

所以,一般有了这个探测器就可满足大多数项目的要求,如果你还不放心,可以 再多加几个探测器,比如下面的ASCIIDetector、UnicodeDetector等。 ---------------------------------------------------------------------------*/ detector.add(JChardetFacade.getInstance());//用到antlr.jar、chardet.jar // ASCIIDetector用于ASCII编码测定 detector.add(ASCIIDetector.getInstance()); // UnicodeDetector用于Unicode家族编码的测定 detector.add(UnicodeDetector.getInstance()); java.nio.charset.Charset charset = null; File f = new File(path); try { charset = detector.detectCodepage(f.toURI().toURL()); } catch (Exception ex) { ex.printStackTrace(); } if (charset != null) return charset.name(); else return null; } public static void main(String[] args) throws IOException, FileNotFoundException { String path = "J:\\Unicode\\ub.txt"; //Windows下Unicode探测后得到Windows-1252 String encode = getFileEncode(path); if("Windows-1252".equalsIgnoreCase(encode)) encode = "Unicode"; File file = new File(path); InputStream ios = new java.io.FileInputStream(file); byte[] b = new byte[3]; ios.read(b); ios.close(); if (b[0] == -17 && b[1] == -69 && b[2] == -65)//文件头 System.out.println(file.getName() + ":编码为UTF-8"); else System.out.println(file.getName() + ":可能是GBK,也可能是其他编码。"); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(new FileInputStream(file), encode)); System.out.println(encode); System.out.println(bufferedReader.readLine().substring(1));//去掉第一行中的文件头 } }
上面代码中的detector不仅可以用于探测文件的编码,也可以探测任意输入的文本流的编码,方法是调用其重载形式: charset=detector.detectCodepage(InputStream in, int length); 上面的字节数由程序员指定,字节数越多,判定越准确,当然时间也花得越长。要注意,字节数的指定不能超过文本流的最大长度。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 我下载的文件字体全变了,怎样设置回文件原来的字体 java 获取 file 的编码(utf-8或者gbk) win10打开的文件怎么字体变了 java有没有那个方法 获取文件保存的编码方式啊? 忍者必须死三怎样获得龙护符? java如何获取双击打开文件时的默认编码? 孔雀东南飞的原文和全译 怎样下载谷歌地球清晰版免费的 在免费版谷歌地球上,看不清楚我家,如果用的是付费版,我是否可以提高我想要看清的地方的清晰度? 东家有贤女,窈窕艳城郭,阿母为汝求,便复在旦夕的意思 谷歌地球怎么知道是不是免费版的? 东家有贤女,自名秦罗敷,可怜体无比 什么意思,谢谢了! 自名秦罗敷,可怜体无比翻译 梦见别人在河里游泳耍一条大蛇 “可怜体无比,阿母为汝求”是什么意思 有什么小实验适合小朋友做的习作把鹌鹑蛋放进白醋里可以变白吗? 华为平板这种情况怎么退出? 如何在safari、opera和google浏览器下判断图片是否已载入完成 米白色羊毛衣服晒了变黄怎么办? 911事件令美国损失两千亿,为何黑客却宣称这是美国*自导自演的呢? 忍者必须死3勾玉怎么刷 文本文档的字体为什么突然改变 java文件上传如何获取上传文件的字符集编码 java 读取文本的二进制编码 忍者必须死3买了神龙护符之后再买小白护符哪个生效 Java如何获得文件编码格式[1] 养老金替代率的计算方法 社保替代率是如何计算的? 社保养老替代率计算 养老金替代率怎么算 养老保险与退休金怎么计算? 养老保险中替代率是指 荣耀V10国际漫游时不能拨打电话? 荣耀8X手机通讯录不能直接拨号 求好听的唯美的2个字女生网名 那1050的显卡怎么看 第一个图标是啥意思 浙江工商大学 凯旋门是哪个门?是学正街公交站旁边的那个么?最好能附上E都市上的图,嘿嘿。 看电脑配置 百度地图上为什么没有标注公交车站?