fs изменяет размер файла в два раза

Когда я для теста решил прочитать exe файл с помощью fs и записать ничего не меняя, он резко вырос в размере в два раза. Скрин

Как это исправить?

async function crate() {
    var fs = require('fs')
fs.readFile("gd/GeometryDash.exe", 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }

  fs.writeFile("gd/GeometryDash1.exe", data, 'utf8', function (err) {
     if (err) return console.log(err);
  });
});
}
код ^

Ответы (1 шт):

Автор решения: vsemozhebuty

Вам нужно читать бинарный файл не как текст в кодировке UTF8, а как буфер, и писать так же. По умолчанию файлы читаются как буферы, поэтому можно просто пропустить кодировку. Также, если на запись подаётся буфер, кодировка игнорируется, поэтому и там её можно пропустить:

const fs = require('fs');

function crate() {
  fs.readFile("gd/GeometryDash.exe", function (err, data) {
    if (err) return console.log(err);

    fs.writeFile("gd/GeometryDash1.exe", data, function (err) {
      if (err) return console.log(err);
    });
  });
}
→ Ссылка