# Метод write

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

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

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

## Синтаксис

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

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

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

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

## Пример

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

`import 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'); } }) } })`

## Пример

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

`import 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` используя буфер:

`import 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` используя строковую переменную:

`import 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`,
  который записывает данные в файл

← →
↑