【发布时间】:2014-09-13 14:49:54
【问题描述】:
我试图避免使用 FileItem getInputStream(),因为它会得到错误的编码,因此我需要 FileInputStream。有没有办法在不使用这种方法的情况下获得 FileInputStream?或者我可以将我的文件项转换为文件吗?
if (this.strEncoding != null && !this.strEncoding.isEmpty()) {
br = new BufferedReader(new InputStreamReader(clsFile.getInputStream(), this.strEncoding));
}
else {
// br = ?????
}
【问题讨论】:
-
如果能分享示例代码就好了。
-
你说的是来自 Apache commons 的 FileItem 吗?
-
InputStream在 Java 中没有编码;它处理bytes。从InputStream到Reader通常涉及定义编码,但这不是流问题。如果您获得InputStream的方式与您获得的编码有关,那么我怀疑某些未定义/奇怪/默认/平台特定的东西正在起作用,这可能会在以后变成一个错误。 -
文件类型是什么?是纯文本文件还是二进制文件?
-
正如@GPI 所说,您有一个误解,因为
InputStream没有编码。向我们展示您正在使用的从FileItem.getInputStream()读取的代码,我们可以告诉您您做错了什么。
标签: java inputstream java-io fileitem