我如何得到一个FileInputStream从FileItem在java



我试图避免FileItem getInputStream(),因为它会得到错误的编码,因为我需要一个FileInputStream代替。有没有办法得到一个FileInputStream不使用这个方法?或者我可以将我的文件项转换为文件吗?

if (this.strEncoding != null && !this.strEncoding.isEmpty()) {
    br = new BufferedReader(new InputStreamReader(clsFile.getInputStream(), this.strEncoding));
} 
else {
    // br = ?????
}

你可以试试

FileItem # getString(编码)

使用指定的编码将文件项的内容作为String返回。

这里可以使用write方法。

File file = new File("/path/to/file");
fileItem.write(file);

InputStream是二进制数据,单位为字节。必须通过给出这些字节的编码将其转换为文本。

Java内部使用Unicode来表示所有的文本脚本。对于文本,使用String/char/Reader/Writer。

对于二进制数据,byte[], InputStream, OutputStream.

所以你可以使用一个桥接类,像InputStreamReader:

String encoding = "UTF-8"; // Or "Windows-1252" ...
BufferedReader in = new BufferedStream(
    new InputStreamReader(fileItem.getInputStream(),
                          encoding));

或者如果你读取字节:

String s = new String(bytes, encoding);

encoding通常是一个选项参数(然后存在一个没有编码的重载方法)。

相关内容

  • 没有找到相关文章

最新更新