I want to save bytearray to a file in node js, for android I'm using the below code sample, can anyone suggest me the similar approach
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();
}
The answer by Leonenko cites/copies the correct JavaScript documentation, but it turns out that writeFile doesn't play nicely with a Uint8Array -- it simply writes the bytes out as numbers:
"84,104,101,32,102,105,114,115,..."
To get it to work, one has to wrap the Uint8Array in a Buffer:
fs.writeFile('testfile',new Buffer(ui8a),...)
Use fs.writeFile to write string or byte array into a file.
<String> | <Buffer> | <Integer>
filename or file descriptor <String> | <Buffer> | <Uint8Array>
<Object> | <String>
<String> | <Null>
default = 'utf8'<Integer>
default = 0o666<String>
default = 'w'<Function>
Asynchronously writes data to a file, replacing the file if it already exists. data can be a string or a buffer.
The encoding option is ignored if data is a buffer. It defaults to 'utf8'.
const fs = require('fs');
// Uint8Array
const data = new Uint8Array(Buffer.from('Hello Node.js'));
fs.writeFile('message.txt', data, callback);
// Buffer
fs.writeFile('message.txt', Buffer.from('Hello Node.js'), callback);
// string
fs.writeFile('message.txt', 'Hello Node.js', callback);
var callback = (err) => {
if (err) throw err;
console.log('It\'s saved!');
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With