作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我上传文件时,我将输入流传递到工作簿。现在我想在另一种方法中使用工作簿中的这个 InputStream
,比如保存我将文件 InputStream
保存到数据库的地方。这是我的代码。
public void FileUpload(FileUploadEvent event) throws ParseException {
UploadedFile item = event.getUploadedFile();
Workbook workbook = org.apache.poi.ss.usermodel.WorkbookFactory.create(item.getInputStream());
}
现在我想将 Workbook 对象作为实例变量并传递给另一个方法,如下所示。
public String save() throws SQLException, IOException{
fileId = dao.savefile(workbook,fileName);
}
在我的保存文件方法中
InputStream inptest= **workbook.getStream**
ps.setBinaryStream(2,fin,fin.available());
所以 inptest
变量接受我想从 Workbook 获取的 InputStream
。
最佳答案
听起来您要求的是一种将 InputStream 用于多种用途的方法:
由于从 InputStream 读取通常是一次性操作,不能重复,那么您可以执行以下操作:
代码可能如下所示:
public void FileUpload(FileUploadEvent event) throws ParseException {
UploadedFile item = event.getUploadedFile();
InputStream originalInputStream = item.getInputStream();
byte[] buffer = IOUtils.toByteArray(originalInputStream);
InputStream is1 = new ByteArrayInputStream(buffer);
InputStream is2 = new ByteArrayInputStream(buffer);
Workbook workbook = org.apache.poi.ss.usermodel.WorkbookFactory.create(is1);
}
InputStream inptest = is2;
ps.setBinaryStream(2,fin,fin.available());
注意:这里使用 Apache Commons IO library对于 IOUtils。
关于java - 如何从java中的Workbook对象获取inputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538529/
我是一名优秀的程序员,十分优秀!