2017-02-02 11 views
0

Я хочу сохранить bytearray в файл в узле js, для android Я использую пример ниже кода. Может ли кто-нибудь предложить мне подобный подход?Сохранить массив байтов в файл узла JS

File file = new File(root, System.currentTimeMillis() + ".jpg"); 
if (file.exists()) 
    file.delete(); 
FileOutputStream fos = null; 
try { 
    fos = new FileOutputStream(file); 
    fos.write(bytesarray); 
    fos.close(); 
    return file; 
} 
catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
catch (IOException e) { 
    e.printStackTrace(); 
} 

ответ

2

Использование fs.writeFile написать строку или массив байтов в файл.

  • файл <String> | <Buffer> | <Integer> имя файла или дескриптора файла
  • данные <String> | <Buffer> | <Uint8Array>
  • варианты <Object> | <String>
    • кодирования <String> | <Null> по умолчанию = 'utf8'
    • режим <Integer> по умолчанию = 0o666
    • флаг <String> по умолчанию = ' w '
    • обратного <Function>

Асинхронный записывает данные в файл, заменяя файл, если он уже существует. данные могут быть строкой или буфером.

Параметр кодирования игнорируется, если данные являются буфером. По умолчанию используется значение «utf8».

fs.writeFile('message.txt', 'Hello Node.js', (err) => { 
    if (err) throw err; 
    console.log('It\'s saved!'); 
}); 
2

Ответ на Леоненко ссылается/копии правильной документации JavaScript, но оказывается, что WriteFile не дружат с Uint8Array - это просто записывает байты как числа:

«84104101 , 32.102.105.114.115, ...»

чтобы заставить его работать, необходимо обернуть Uint8Array в буфер:

fs.writeFile('testfile',new Buffer(ui8a),...)