2015-04-23 1 views
1

Я планирую использовать SheetJS с носорогом. И sheetjs берет двоичный объект (BLOB, если я прав), поскольку он вводится. Поэтому мне нужно прочитать файл из системы, используя многопроцессорные методы ввода-вывода Java и сохранить его в блоке, прежде чем передавать его на листы. например: -Чтение двоичного файла из файловой системы в виде BLOB для использования в носороге с javascript

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

Так как я могу создать BLOB (или соответствующий тип) из двоичного файла в Java, чтобы передать его в

я предполагаю, что я не могу передать потоки, потому что я думаю, потребности XLSX. полностью созданный объект для обработки.

ответ

1

Я нашел ответ на это сам. я смог сделать так.
Прочитайте файл с InputStream, а затем напишите его на ByteArrayOutputStream. как показано ниже.

ByteArrayOutputStream buffer = new ByteArrayOutputStream(); 

...

buffer.write(bytes, 0, len); 

Затем создайте байтовый массив из него.

byte[] byteArray = buffer.toByteArray(); 

Наконец я сделал преобразовать его в Base64 String (которая также применима в моем случае) с использованием "Base64.encodeBase64String()" метод в apache.commons.codec.binary пакета. Поэтому я могу передать Base64 String в качестве параметра метода.

Если вам еще нужно, есть много библиотек (сторонних и по умолчанию), доступных для Base64 для Blob преобразования.