第一种方法 - 使用InputStreamReader。

但它总是返回操作系统编码。

InputStreamReader reader = new InputStreamReader(new FileInputStream("aa.rar"));

System.out.println(reader.getEncoding());

输出:GBK

第二方法 - 使用UniversalDetector会。

但它总是返回null。

FileInputStream input = new FileInputStream("aa.rar");

UniversalDetector detector = new UniversalDetector(null);

byte[] buf = new byte[4096];

int nread;

while ((nread = input.read(buf)) > 0 && !detector.isDone()) {

detector.handleData(buf, 0, nread);

}

// (3)

detector.dataEnd();

// (4)

String encoding = detector.getDetectedCharset();

if (encoding != null) {

System.out.println("Detected encoding = " + encoding);

} else {

System.out.println("No encoding detected.");

}

// (5)

detector.reset();

输出:空

我怎样才能得到正确的? :(

+4

InputStreamReader将始终使用平台编码。它不会尝试检测文件中的编码。 通过UniversalDetector运行什么类型的文件?在你的例子中,你使用了一个RAR文件,它是一个压缩的二进制格式。首先尝试使用简单的ASCII文本文件。 –

+0

嗨,我改变了文件类型,'Fortunes.txt'输出:没有检测到编码 –

+0

似乎没有检测到'标准'UTF-8或UTF-16没有BOM,但它的工作原理是UTF-16为我提供BOM。也许考虑使用不同的库进行字符集检测? [此链接](http://stackoverflow.com/questions/499010/java-how-to-determine-the-correct-charset-encoding-of-a-stream)可能会有所帮助。 –

java获取inputstream_Java:我怎样才能从inputStream获取编码?相关推荐

  1. java url inputstream,从InputStream获取URL

    我想知道如何从低层次角度实现java中的InputStream.从InputStream获取URL 假设我编写了一个用于与网站进行连接的java代码. url = new URL("[som ...

  2. java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...

    标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...

  3. 我现在是个普通Java程序员,如何才能“更有竞争力”?

    很多人会问我:我现在是个普通Java程序员,如何才能"更有竞争力"? 画外音:Java,是目前世界上最流行的语言. 我认为所谓竞争力,其实包括两个方面,现在的和未来的:搞得定当下的 ...

  4. java通过Access_JDBC30读取access数据库时无法获取最新插入的记录

    1.编写了一个循环程序,每几秒钟读取一次,数据库中最新一行数据 连接access数据库的方法和查询的信息.之后开一个定时去掉用. package javacommon.util;import java ...

  5. java微信开发API解析(二)-获取消息和回复消息

    java微信开发API解析(二)-获取消息和回复消息 说明 * 本演示样例依据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/20 ...

  6. Java学到什么程度才能叫精通?

    Java学到什么程度才能叫精通? 全文分为:基础知识和进阶知识 下文java必会知识附答案!并为大家整理了一个pdf,所有的知识点和答案都在pdf里面. 必会知识点及其答案!!! Java基础知识(* ...

  7. java poi读取excel报错Your InputStream was neither an OLE2 stream, nor an OOXML stream

    错误描述 java poi读取excel报错Your InputStream was neither an OLE2 stream, nor an OOXML stream 楼主是读取的另存为的exc ...

  8. Java要掌握哪些技术才能顺利找到工作?分享这6项

    在中国Java的市场永远都是巨大的,但是随着信息的普及,人人都知道Java开发做的时间久了,工资高,所以必然会增加竞争程度.那么,Java要掌握哪些技术才能顺利找到工作?这6项技术,你一定要掌握.下面 ...

  9. Java反射机制01_反射的概念以及获取字节码信息 的四种方式

    Java反射机制01-反射的概念以及获取字节码信息 的四种方式 一.反射的概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象, 都能够调用它的任意 ...

最新文章

  1. ylinux系统找到软件_电脑用了段时间发现多处一些软件该怎么办?
  2. linux共享磁盘给指定ip,Linux 磁盘挂载和mount共享
  3. linux rpm命令 查询包安装与否、包详细信息、包安装位置、文件属于哪个包、包依赖
  4. 前端一HTML:二十二元素显示方式案例
  5. Ftp实现上传文件至远程服务器
  6. Vuex-全局状态集中式管理神器,做vue项目不知道Vuex真的out了
  7. 2015 提高组 跳石头--二分答案
  8. 【ArcGIS Pro微课1000例】0011:ArcGIS Pro范围内汇总工具的巧妙使用——以甘肃省各地区内河流总长度计算为例
  9. python实例 89,90
  10. 学习笔记25_MVC前台API
  11. 锐起无盘辅服务器的作用,锐起无盘特殊功用为网吧带来更多收益
  12. 图嵌入综述 (arxiv 1709.07604) 译文第一、二章
  13. C++学习笔记(11) 重载流插入运算符和流提取运算符,以及自动类型转换
  14. readelf命令解析及演示
  15. 继承 actionSupport
  16. Java Web 项目基于IDEA的增量补丁打包插件
  17. ssm mysql项目实战_ssm项目实战_ssm项目实战教程_ssm项目实战视频教程 _课课家
  18. ps裁剪和裁切的区别_PS CS5 裁剪与裁切的区别
  19. C#轻松创建ModbusTCP服务器【Slave】,实现工业数据交换接口。
  20. 独立网店运营简要分析

热门文章

  1. 我的HTML学习之路01
  2. 新年第一天,3000台Apache服务器宕机
  3. 波及1.95亿辆车,黑莓承认系统存在漏洞,大众、宝马纷纷“躺枪”
  4. 违背信任!Linus 回应“拉黑”事件
  5. 为什么项目经理依然想写代码?
  6. 只需一行代码,就能导入所有的Python库?
  7. 这道考 switch 控制语句的阿里基础面试题你能答对吗?
  8. OpenSLR 中国镜像背后的数据存储服务商,原来是这样一家公司!
  9. 形态学上的图像顶帽运算和黑帽运算是什么?
  10. Java 15 即将到来,新特性速览!