java - Java中如何将ByteBuffer转换为FileInputStream?

标签 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() 对其进行强制转换,但看起来不起作用!

最佳答案

  1. 更改您的逻辑以使用 InputStream 而不是 FileInputStream。您不关心输入来自何处。
  2. 使用以下代码:

    ByteArrayInputStream bais = new ByteArrayInputStream(buffer.array(), buffer.position(), buffer.limit());
    

并将 bais 传递给您现有的方法。

关于java - Java中如何将ByteBuffer转换为FileInputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29004236/

相关文章:

java - 多个版本的 "JDK",执行哪个 "java.exe"文件?

java - FileInputStream 错误 Java

java - 将两个 byteBuffer 连接成一个

java - ByteBuffer - CompareTo 方法可能会出现分歧

java - 使用 MappedByteBuffer 时出现 IndexOutOfBoundsException

Java日历获取从今天开始的前10天并将时间设置为12 :00 fails

java - 根据标记文件中的 TLD 或属性指令,属性项不接受任何表达式

java - 多个线程同时共享同一个函数

java - 如何在Java Rest API中获取InputStream文件的真实路径

java - 在Java中解密文件并将其导出到文件而不进入无限循环?