【问题标题】:Reading a binary file from the file system as a BLOB to use in rhino with javascript从文件系统中读取二进制文件作为 BLOB 以在 rhino 中使用 javascript
【发布时间】:2015-04-23 13:14:34
【问题描述】:

我打算将 SheetJS 与 rhino 一起使用。 sheetjs 将二进制对象(如果我是正确的,则为 BLOB)作为输入。因此,我需要使用搁浅的 java I/O 方法从系统中读取一个文件,并将其存储到一个 blob 中,然后再将其传递给 sheetjs。例如:-

var XLDataWorkBook = XLSX.read(blobInput, {type : "binary"});

那么我怎样才能从java中的二进制文件创建一个BLOB(或适当的类型)以便将它传入。

我猜我不能传递流,因为我猜 XLSX 需要一个完全创建的对象来处理。

【问题讨论】:

    标签: java javascript rhino xlsb


    【解决方案1】:

    我自己找到了答案。我能够以这种方式完成它。
    使用 InputStream 读取文件,然后将其写入 ByteArrayOutputStream。如下所示。

    ByteArrayOutputStream buffer = new ByteArrayOutputStream(); 
    

    ...

    buffer.write(bytes, 0, len); 
    

    然后从中创建一个字节数组。

    byte[] byteArray =   buffer.toByteArray();
    

    最后我使用 apache.commons.codec.binary包。所以我可以将 Base64 String 作为方法参数传递。

    如果您进一步需要,还有许多可用于 Base64 到 Blob 转换的库(第 3 方和默认库)。

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 1970-01-01
      • 2018-11-19
      • 2021-04-11
      • 2015-07-21
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多