如何在Java中将ByteBuffer转换为FileInputStream?

时间:2015-03-12 07:40:05

标签: java fileinputstream bytebuffer

我正在尝试将xls表格导入数据库,因为当我上传文件时,上传的文件是ByteBuffer格式,我编写了一个读取为FileInputStream的逻辑。

现在我如何将此ByteBuffer转换为FileInputStream

这是我的代码

        ByteBuffer fileBytes = (ByteBuffer) context.get("uploadedFile");
        String encoding = System.getProperty("file.encoding");
        String filename = Charset.forName(encoding).decode(fileBytes).toString();
        filename = filename.replaceAll("\\r", "");

我尝试使用ByteArrayInputStream()进行Casting,但看起来它不起作用了!

1 个答案:

答案 0 :(得分:3)

  1. 将您的逻辑更改为使用InputStream而不是FileInputStream.您并不关心输入的来源。
  2. 使用以下代码:

    ByteArrayInputStream bais = new ByteArrayInputStream(buffer.array(), buffer.position(), buffer.limit());
    
  3. 并将bais传递给您现有的方法。