我想从流中获取编码。
第一种方法-使用InputStreamReader。
但是它总是返回OS编码。
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();
输出:空
我怎样才能正确?:(
让我们恢复情况:
因此,在阅读之前需要知道编码。您首先使用字符集检测类正确完成了所有操作。
阅读http://code.google.com/p/juniversalchardet/时,它应该处理UTF-8和UTF-16。您可以使用编辑器JEdit来验证编码,并查看是否存在问题。
问题内容: 如何从BufferedImage对象获取InputStream?我尝试了这个,但是ImageIO.createImageInputStream()总是返回NULL 图片缩略图已正确生成,因为我可以成功将 bigImage绘制 到 JPanel 。 谢谢。 问题答案: 如果您尝试将图像保存到文件,请尝试: 如果您只想读取字节,请尝试执行写调用,但将其传递给ByteArrayOutputS
问题内容: 我想从java.io.InputStream读取超时。显然,执行此操作的正确方法是使用java.nio.channels.SelectableChannel和java.nio.channels.Selector。不幸的是,目前尚不清楚如何从InputStream转到SelectableChannel。 InputStream来自非常规来源-http://java.sun.com/pro
问题内容: 我已经创建了可执行的jar文件(使用Eclipse),在jar中包含一组图像(.png)文件。所以我添加了一个源文件夹,其中所有图像都位于项目的文件夹中。代码必须访问这些文件才能使用创建BufferedImage 较早前,为了获得我使用的路径 在执行jar时,它抛出错误 URI不是分层的 所以现在我正在使用 但是如何使ImageIO从Inputstream读取?我试过如下 抛出错误 I
问题内容: 在一个项目上,我通过一个类似于控制台的小窗口运行Java应用程序。由于这里有一个很棒的社区,我设法通过从流程输出数据来解决问题,但是由于没有输入流,我运行的命令行应用程序将不断出错。 基于该线程中最后一个有用的答复,我想我将以类似的方式实现该实现,但是在javadocs中以及整个google和互联网中寻找某个类,该类确实没有发现任何解释方法。 因此,我需要一些链接,示例,教程,示例代码
我使用的是改装版2.0b2。收到响应后,我尝试通过以下方式从响应中获取InputStream: 但是这个应用程序一直在扔: 尽管回复正确。我到底做错了什么?