Метод write

Метод write указывает позицию в файле, с которой начинается запись в буфер, а также для того, что обозначить какую часть буфера записывать в файл. В первом параметре метода указываем файловый дескриптор. Метод write можно применять в двух вариантах: с буфером и со строковой переменной. Различия между этими вариантами начинаются со второго параметра.

Если мы используем метод с буфером, то во втором параметре указываем буфер, в третьем параметре - часть буфера, предназначенную для записи. В четвертом необязательном параметре задаем длину в байтах, которая будет записана в файл. В пятом необязательном параметре задаем позицию, с которой начнется запись файла, в шестом необязательном параметре - коллбэк.

В случае, если нам нужно применить метод write со строковым значением, во втором параметре мы указываем строку, в третьем необязательном параметре - позицию, с которой начнется запись файла. В четвертом необязательном параметре задаем кодировку, значение по умолчанию которой равно 'UTF-8'. И в пятом необязательном параметре указываем коллбэк.

Синтаксис

При использовании буфера:

javascriptfs.write(файловый дескриптор, буфер, часть буфера для записи, [длина], [позиция], [коллбэк]);

При использовании строки:

javascriptfs.write(файловый дескриптор, строка, [позиция], [кодировка], [коллбэк]);

Пример

Давайте асинхронно запишем данные в файл используя буфер. Вначале мы откроем файл с помощью метода open, во второй параметр которого добавим режим 'a', позволяющий каждый раз просто добавлять данные к файлу, а не перезаписывать их новыми:

javascriptimport fs from 'fs';

let buffer = new Buffer.from('text');

fs.open('/file.txt', 'a', function(err, fd) {
  if (err) {
    console.log(err);
  } else {
    fs.write(fd, buffer, 0, buffer.length,
      null, function(err, writtenbytes) {
        if (err) {
          console.log(err);
        } else {
          console.log(writtenbytes + ' characters added to file');
        }
      })
    }
})

Пример

Теперь давайте асинхронно запишем данные в файл используя строковую переменную:

javascriptimport fs from 'fs';

const str = 'text';

fs.open('/file.txt', 'a', function(err, fd) {
  if (err) {
    console.log(err);
  } else {
    fs.write(fd, str, function(err, bytes) {
      if (err) {
        console.log(err);
      } else {
        console.log(bytes + ' bytes written');
      }
    })
  }
})

Пример

Давайте синхронно запишем данные в файл через writeSync используя буфер:

javascriptimport fs from 'fs';

let buffer = new Buffer.from('text');

try {
  fs.open('/file.txt', 'a', function(err, fd) {
    if (err) {
      console.log(err);
    } else {
      fs.write(fd, buffer, 0, buffer.length,
        null, function(err, writtenbytes) {
          if (err) {
            console.log(err);
          } else {
            console.log(writtenbytes + ' characters added to file');
          }
        })
      }
  })
} catch (err) {
  console.log(err);
}

Пример

Давайте синхронно запишем данные в файл через writeSync используя строковую переменную:

javascriptimport fs from 'fs';

const str = 'text';

try {
  fs.open('/file.txt', 'a', function(err, fd) {
    if (err) {
      console.log(err);
    } else {
      fs.write(fd, str, function(err, bytes) {
        if (err) {
          console.log(err);
        } else {
          console.log(bytes + ' bytes written');
          }
        })
      }
    })
  } catch (err) {
    console.log(err);
  }

Смотрите также

  • метод writeFile,
    который записывает данные в файл