首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中从FileItem获取FileInputStream?

如何在java中从FileItem获取FileInputStream?
EN

Stack Overflow用户
提问于 2014-07-23 00:49:01
回答 3查看 5.9K关注 0票数 1

我尽量避免使用FileItem getInputStream(),因为它会得到错误的编码,因此我需要一个FileInputStream。有没有办法在不使用此方法的情况下获得FileInputStream?或者,我可以将文件项转换为文件吗?

代码语言:javascript
复制
if (this.strEncoding != null && !this.strEncoding.isEmpty()) {
    br = new BufferedReader(new InputStreamReader(clsFile.getInputStream(), this.strEncoding));
} 
else {
    // br = ?????
}
EN

回答 3

Stack Overflow用户

发布于 2014-07-23 00:53:32

你可以试试

FileItem#getString(encoding)

使用指定的编码,

以字符串的形式返回文件项的内容。

票数 2
EN

Stack Overflow用户

发布于 2014-07-23 00:52:59

您可以在此处使用write方法。

代码语言:javascript
复制
File file = new File("/path/to/file");
fileItem.write(file);
票数 0
EN

Stack Overflow用户

发布于 2014-07-23 01:20:28

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

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

对于二进制数据,则为byte[]、InputStream、OutputStream。

因此,您可以使用桥接类,如InputStreamReader

代码语言:javascript
复制
String encoding = "UTF-8"; // Or "Windows-1252" ...
BufferedReader in = new BufferedStream(
    new InputStreamReader(fileItem.getInputStream(),
                          encoding));

或者,如果您读取字节:

代码语言:javascript
复制
String s = new String(bytes, encoding);

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24893213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档