我尽量避免使用FileItem getInputStream(),因为它会得到错误的编码,因此我需要一个FileInputStream。有没有办法在不使用此方法的情况下获得FileInputStream?或者,我可以将文件项转换为文件吗?
if (this.strEncoding != null && !this.strEncoding.isEmpty()) {
br = new BufferedReader(new InputStreamReader(clsFile.getInputStream(), this.strEncoding));
}
else {
// br = ?????
}发布于 2014-07-23 00:53:32
发布于 2014-07-23 00:52:59
您可以在此处使用write方法。
File file = new File("/path/to/file");
fileItem.write(file);发布于 2014-07-23 01:20:28
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);编码通常是一个选项参数(然后存在一个没有编码的重载方法)。
https://stackoverflow.com/questions/24893213
复制相似问题