Answer the question
In order to leave comments, you need to log in
How to read and write binary file using Buffer or ArrayBuffer?
Здравствуйте.
Нужно прочитать данные из бинарного файла в Buffer или ArrayBuffer (не знаю что для этого лучше подходит), после из этого же Buffer or ArrayBuffer записать обратно в файл.
Смысла тут никакого, мне просто нужен наглядный пример реализации, ибо понять не могу как оно должно работать.
Заранее спасибо!
Answer the question
In order to leave comments, you need to log in
var path = 'public/uploads/file.txt',
buffer = new Buffer("some content\n");
fs.open(path, 'w', function(err, fd) {
if (err) {
throw 'error opening file: ' + err;
}
fs.write(fd, buffer, 0, buffer.length, null, function(err) {
if (err) throw 'error writing file: ' + err;
fs.close(fd, function() {
console.log('file written');
})
});
});
fs.open(filepath, 'r', function(err, fd) {
fs.fstat(fd, function(err, stats) {
var bufferSize=stats.size,
chunkSize=512,
buffer=new Buffer(bufferSize),
bytesRead = 0;
while (bytesRead < bufferSize) {
if ((bytesRead + chunkSize) > bufferSize) {
chunkSize = (bufferSize - bytesRead);
}
fs.read(fd, buffer, bytesRead, chunkSize, bytesRead);
bytesRead += chunkSize;
}
console.log(buffer.toString('utf8', 0, bufferSize));
fs.close(fd);
});
});
// Convert a binary buffer into a "binary" encoded string.
function binaryEncode(buffer) {
var string = "";
for (var i = 0, l = buffer.length; i < l; i++) {
string += String.fromCharCode(buffer[i]);
}
return string
}
// Convert a "binary" encoded string into a binary buffer.
function binaryDecode(string) {
var length = string.length;
var buffer = new Buffer(length);
for (var i = 0; i < length; i++) {
buffer[i] = string.charCodeAt(i);
}
}
client.on('stream', function(stream, meta){
var bufs = [];
stream.on('data', function(data){
bufs.push(data);
});
stream.on('end', function(){
var buf = binaryEncode(Buffer.concat(bufs));
fs.writeFile(__dirname + "/tmp/"+meta.frame+".dat", buf, "binary", function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
});
}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question