Лучшее руководство по Node.js файловой системы в 2024 году. В этом руководстве вы можете изучить Асинхронный и синхронный,Открыть файл,Получение информации о файле,Запись в файл,Прочитайте файл,Закройте файл,Intercept файл,Удалить файлы,Создание каталога,Читайте каталог,удалить каталог,Эталонный метод файла модуля,
Node.js файловой системы
Node.js обеспечивает аналогичный набор UNIX (POSIX) стандартных операций с файлами API. Узел Импорт файлов Системный модуль (фс) синтаксис выглядит следующим образом:
var fs = require("fs")
Асинхронный и синхронный
Node.js файловая система (фс Module) методы модуля имеют асинхронные и синхронные версии, такие как чтение содержание функции документа имеет асинхронный fs.readFile () и синхронизация fs.readFileSync ().
Асинхронные функции метод последнего параметра функции обратного вызова, первый аргумент функции обратного вызова содержит сообщение об ошибке (ошибка).
Я рекомендую это использовать асинхронный метод, по сравнению с синхронным, асинхронным способом для более высокой производительности, быстрее, и нет никаких препятствий.
примеров
Создание input.txt файл, следующим образом:
本教程官网地址:www.w3write.com 文件读取实例
Создание file.js файл, следующим образом:
var fs = require("fs"); // 异步读取 fs.readFile('input.txt', function (err, data) { if (err) { return console.error(err); } console.log("异步读取: " + data.toString()); }); // 同步读取 var data = fs.readFileSync('input.txt'); console.log("同步读取: " + data.toString()); console.log("程序执行完毕。");
Приведенный выше код выполняется следующим образом:
$ node file.js 同步读取: 本教程官网地址:www.w3write.com 文件读取实例 程序执行完毕。 异步读取: 本教程官网地址:www.w3write.com 文件读取实例
Далее, давайте понять конкретные методы в рамках файловой системы Node.js.
Открыть файл
грамматика
Ниже приведен открытый файл в асинхронном режиме синтаксиса:
fs.open(path, flags[, mode], callback)
параметры
Параметры следующим образом:
путь - путь к файлу.
флаги - открыть файл поведения.Конкретные значения описаны ниже.
режим - установить режим доступа к файлу (разрешений), создать файл разрешения по умолчанию 0666 (чтение, запись).
Обратный вызов - функция обратного вызова принимает два параметра, например: обратный вызов (ERR, FD).
Параметр флаги могут быть следующие значения:
флаг | описание |
---|---|
R | Откройте файл в режиме чтения. Если файл не существует бросок. |
г + | Откройте файл в режиме чтения-записи. Если файл не существует бросок. |
Р.С. | Прочитайте файл в синхронном режиме. |
RS + | Синхронизированным образом для чтения и записи файлов. |
вес | Откройте файл в режиме записи, если файл не существует, он будет создан. |
WX | Подобное 'ш', но если файл путь существует, сбой записи файла. |
ш + | Откройте файл в режиме чтения-записи, если файл не существует, он будет создан. |
WX + | Аналогично 'ш +', но если файл существует путь, файл чтения и записи не удалась. |
Откройте файл в режиме добавления, если файл не существует, он будет создан. | |
топор | Подобно 'A', но если файл существует путь, прикрепление файла не удается. |
а + | Чтобы прочитать файл, открытый в режиме добавления, если файл не существует, он будет создан. |
ах + | Подобный "A +", но если файл существует путь, файл читается дополнительные сбои. |
примеров
Далее мы создаем file.js файл и открывает файл input.txt читать и писать код следующим образом:
var fs = require("fs"); // 异步打开文件 console.log("准备打开文件!"); fs.open('input.txt', 'r+', function(err, fd) { if (err) { return console.error(err); } console.log("文件打开成功!"); });
Приведенный выше код выполняется следующим образом:
$ node file.js 准备打开文件! 文件打开成功!
Получение информации о файле
грамматика
Следующие документы для получения информации с помощью асинхронного синтаксиса режима:
fs.stat(path, callback)
параметры
Параметры следующим образом:
путь - путь к файлу.
Обратный вызов - функция обратного вызова принимает два параметра, например:(ERR, статистика), статистика являются fs.Stats объекта.
После того, как fs.stat (путь) исполнения, экземпляр класса будет возвращен к своей функции обратного вызова статистике. Вы можете определить соответствующие атрибуты файла по статистике класс предоставляет метод. Например, чтобы определить, являются ли файлы:
var fs = require('fs'); fs.stat('/Users/liuht/code/itbilu/demo/fs.js', function (err, stats) { console.log(stats.isFile()); //true })
Методы класса статистика являются:
способ | описание |
---|---|
stats.isFile () | Если файл возвращает истину, в противном случае она возвращает ложь. |
stats.isDirectory () | Если каталог возвращает истину, в противном случае она возвращает ложь. |
stats.isBlockDevice () | Если блочное устройство возвращает истину, в противном случае она возвращает ложь. |
stats.isCharacterDevice () | Если устройство символ возвращает истину, в противном случае возвращает ложь. |
stats.isSymbolicLink () | Если это мягкая ссылка возвращает истину, в противном случае она возвращает ложь. |
stats.isFIFO () | Если FIFO, возвращает истину, в противном случае она возвращает ложь. FIFO представляет собой особый тип командного конвейера UNIX. |
stats.isSocket () | Если сокет возвращает истину, в противном случае она возвращает ложь. |
примеров
Далее мы создаем file.js файл, код выглядит следующим образом:
var fs = require("fs"); console.log("准备打开文件!"); fs.stat('input.txt', function (err, stats) { if (err) { return console.error(err); } console.log(stats); console.log("读取文件信息成功!"); // 检测文件类型 console.log("是否为文件(isFile) ? " + stats.isFile()); console.log("是否为目录(isDirectory) ? " + stats.isDirectory()); });
Приведенный выше код выполняется следующим образом:
$ node file.js 准备打开文件! { dev: 16777220, mode: 33188, nlink: 1, uid: 501, gid: 20, rdev: 0, blksize: 4096, ino: 40333161, size: 61, blocks: 8, atime: Mon Sep 07 2015 17:43:55 GMT+0800 (CST), mtime: Mon Sep 07 2015 17:22:35 GMT+0800 (CST), ctime: Mon Sep 07 2015 17:22:35 GMT+0800 (CST) } 读取文件信息成功! 是否为文件(isFile) ? true 是否为目录(isDirectory) ? false
Запись в файл
грамматика
Далее записывается в файл в асинхронном режиме синтаксиса:
fs.writeFile(filename, data[, options], callback)
Если файл существует, метод записывает содержимое будет перезаписать старое содержимое файла.
параметры
Параметры следующим образом:
путь - путь к файлу.
данные - данные , которые должны быть записаны в файл, который может быть String (String) или буфер (поток) объект.
Параметры - Этот параметр представляет собой объект , который содержит {кодирования, мода, флаг}.Кодировка по умолчанию utf8, 0666, флаг 'W'
Обратный вызов - функция обратного вызова, функция обратного вызова содержит только сообщения об ошибках аргументы (ERR), возвращает при записи терпит неудачу.
примеров
Далее мы создаем file.js файл, код выглядит следующим образом:
var fs = require("fs"); console.log("准备写入文件"); fs.writeFile('input.txt', '我是通过写入的文件内容!', function(err) { if (err) { return console.error(err); } console.log("数据写入成功!"); console.log("--------我是分割线-------------") console.log("读取写入的数据!"); fs.readFile('input.txt', function (err, data) { if (err) { return console.error(err); } console.log("异步读取文件数据: " + data.toString()); }); });
Приведенный выше код выполняется следующим образом:
$ node file.js 准备写入文件 数据写入成功! --------我是分割线------------- 读取写入的数据! 异步读取文件数据: 我是通过写入的文件内容
Прочитайте файл
грамматика
Здесь Асинхронный режим для чтения синтаксис файла:
fs.read(fd, buffer, offset, length, position, callback)
Этот метод использует дескриптор файла для чтения файла.
параметры
Параметры следующим образом:
FD - обратно через fs.open метод () файловых дескрипторов.
буфер - данные записываются в буфер.
смещение - смещение буфера записи записывается.
Длина - количество байтов , считанных из файла.
положение - начало файла считывается, если позиция имеет нулевое значение, считывается из текущей позиции указателя файла.
Обратный вызов - функция обратного вызова принимает три аргумента : заблуждаетесь, BytesRead, буфер, ERR сообщение об ошибке, BytesRead указывает количество байтов для чтения, буфер объект буфера.
примеров
input.txt содержимое файла:
本教程官网地址:www.w3write.com
Далее мы создаем file.js файл, код выглядит следующим образом:
var fs = require("fs"); var buf = new Buffer(1024); console.log("准备打开已存在的文件!"); fs.open('input.txt', 'r+', function(err, fd) { if (err) { return console.error(err); } console.log("文件打开成功!"); console.log("准备读取文件:"); fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){ if (err){ console.log(err); } console.log(bytes + " 字节被读取"); // 仅输出读取的字节 if(bytes > 0){ console.log(buf.slice(0, bytes).toString()); } }); });
Приведенный выше код выполняется следующим образом:
$ node file.js 准备打开已存在的文件! 文件打开成功! 准备读取文件: 42 字节被读取 本教程官网地址:www.w3write.com
Закройте файл
грамматика
Ниже приводится замкнутый файл в асинхронном режиме синтаксиса:
fs.close(fd, callback)
Этот метод использует дескриптор файла для чтения файла.
параметры
Параметры следующим образом:
FD - обратно через fs.open метод () файловых дескрипторов.
Обратный вызов - функция обратного вызова не имеет параметров.
примеров
input.txt содержимое файла:
本教程官网地址:www.w3write.com
Далее мы создаем file.js файл, код выглядит следующим образом:
var fs = require("fs"); var buf = new Buffer(1024); console.log("准备打开文件!"); fs.open('input.txt', 'r+', function(err, fd) { if (err) { return console.error(err); } console.log("文件打开成功!"); console.log("准备读取文件!"); fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){ if (err){ console.log(err); } // 仅输出读取的字节 if(bytes > 0){ console.log(buf.slice(0, bytes).toString()); } // 关闭文件 fs.close(fd, function(err){ if (err){ console.log(err); } console.log("文件关闭成功"); }); }); });
Приведенный выше код выполняется следующим образом:
$ node file.js 准备打开文件! 文件打开成功! 准备读取文件! 本教程官网地址:www.w3write.com 文件关闭成功
Intercept файл
грамматика
Ниже приведен синтаксис асинхронный режим перехвата файла:
fs.ftruncate(fd, len, callback)
Этот метод использует дескриптор файла для чтения файла.
параметры
Параметры следующим образом:
FD - обратно через fs.open метод () файловых дескрипторов.
Len - длина содержимого файла перехваченного.
Обратный вызов - функция обратного вызова не имеет параметров.
примеров
input.txt содержимое файла:
site:www.w3write.com
Далее мы создаем file.js файл, код выглядит следующим образом:
var fs = require("fs"); var buf = new Buffer(1024); console.log("准备打开文件!"); fs.open('input.txt', 'r+', function(err, fd) { if (err) { return console.error(err); } console.log("文件打开成功!"); console.log("截取10字节后的文件内容。"); // 截取文件 fs.ftruncate(fd, 10, function(err){ if (err){ console.log(err); } console.log("文件截取成功。"); console.log("读取相同的文件"); fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){ if (err){ console.log(err); } // 仅输出读取的字节 if(bytes > 0){ console.log(buf.slice(0, bytes).toString()); } // 关闭文件 fs.close(fd, function(err){ if (err){ console.log(err); } console.log("文件关闭成功!"); }); }); }); });
Приведенный выше код выполняется следующим образом:
$ node file.js 准备打开文件! 文件打开成功! 截取10字节后的文件内容。 文件截取成功。 读取相同的文件 site:www.r 文件关闭成功
Удалить файлы
грамматика
Ниже приведен синтаксис для удаления файла:
fs.unlink(path, callback)
параметры
Параметры следующим образом:
путь - путь к файлу.
Обратный вызов - функция обратного вызова не имеет параметров.
примеров
input.txt содержимое файла:
site:www.w3write.com
Далее мы создаем file.js файл, код выглядит следующим образом:
var fs = require("fs"); console.log("准备删除文件!"); fs.unlink('input.txt', function(err) { if (err) { return console.error(err); } console.log("文件删除成功!"); });
Приведенный выше код выполняется следующим образом:
$ node file.js 准备删除文件! 文件删除成功!
См input.txt файл еще раз и не нашел больше не существует.
Создание каталога
грамматика
Ниже приведен синтаксис для создания каталога:
fs.mkdir(path[, mode], callback)
параметры
Параметры следующим образом:
путь - путь к файлу.
режим - установить права доступа для каталога, по умолчанию 0777.
Обратный вызов - функция обратного вызова не имеет параметров.
примеров
Далее мы создаем file.js файл, код выглядит следующим образом:
var fs = require("fs"); console.log("创建目录 /tmp/test/"); fs.mkdir("/tmp/test/",function(err){ if (err) { return console.error(err); } console.log("目录创建成功。"); });
Приведенный выше код выполняется следующим образом:
$ node file.js 创建目录 /tmp/test/ 目录创建成功。
Читайте каталог
грамматика
Ниже приведен синтаксис для чтения каталога:
fs.readdir(path, callback)
параметры
Параметры следующим образом:
путь - путь к файлу.
Обратный вызов - функция обратного вызова, функция обратного вызова принимает два аргумента : заблуждаетесь, файлы, заблуждается сообщение об ошибке, файлы для списка массива файлов в каталоге.
примеров
Далее мы создаем file.js файл, код выглядит следующим образом:
var fs = require("fs"); console.log("查看 /tmp 目录"); fs.readdir("/tmp/",function(err, files){ if (err) { return console.error(err); } files.forEach( function (file){ console.log( file ); }); });
Приведенный выше код выполняется следующим образом:
$ node file.js 查看 /tmp 目录 input.out output.out test test.txt
удалить каталог
грамматика
Ниже приведен синтаксис для удаления каталога:
fs.rmdir(path, callback)
параметры
Параметры следующим образом:
путь - путь к файлу.
Обратный вызов - функция обратного вызова не имеет параметров.
примеров
Далее мы создаем file.js файл, код выглядит следующим образом:
var fs = require("fs"); console.log("准备删除目录 /tmp/test"); fs.rmdir("/tmp/test",function(err){ if (err) { return console.error(err); } console.log("读取 /tmp 目录"); fs.readdir("/tmp/",function(err, files){ if (err) { return console.error(err); } files.forEach( function (file){ console.log( file ); }); }); });
Приведенный выше код выполняется следующим образом:
$ node file.js 准备删除目录 /tmp/test input.out output.out test test.txt 读取 /tmp 目录 ……
Эталонный метод файла модуля
Ниже приведен список файлов, таким же образом, Node.js модули:
Нет. | Метод и описание |
---|---|
1 | fs.rename (OLDPATH, NEWPATH, обратный вызов) Асинхронный Rename (). Функция обратного вызова не имеет параметров, но может бросить. |
2 | fs.ftruncate (FD, Len, обратный вызов) Асинхронный ftruncate (). Функция обратного вызова не имеет параметров, но может бросить. |
3 | fs.ftruncateSync (FD, Len) Синхронизация ftruncate () |
4 | fs.truncate (путь, Len, обратный вызов) Асинхронный усечение (). Функция обратного вызова не имеет параметров, но может бросить. |
5 | fs.truncateSync (путь, длина) Синхронизация усечение () |
6 | fs.chown (путь, UID, GID, обратный вызов) Асинхронный Чаун (). Функция обратного вызова не имеет параметров, но может бросить. |
7 | fs.chownSync (путь, UID, GID) Синхронизация Чаун () |
8 | fs.fchown (FD, UID, GID, обратный вызов) Асинхронный fchown (). Функция обратного вызова не имеет параметров, но может бросить. |
9 | fs.fchownSync (FD, UID, GID) Синхронизация fchown () |
10 | fs.lchown (путь, UID, GID, обратный вызов) Асинхронный lchown (). Функция обратного вызова не имеет параметров, но может бросить. |
11 | fs.lchownSync (путь, UID, GID) Синхронизация lchown () |
12 | fs.chmod (путь, режим, обратный вызов) Асинхронный CHMOD (). Функция обратного вызова не имеет параметров, но может бросить. |
13 | fs.chmodSync (путь, режим) Синхронизация CHMOD (). |
14 | fs.fchmod (FD, режим, обратный вызов) Асинхронный fchmod (). Функция обратного вызова не имеет параметров, но может бросить. |
15 | fs.fchmodSync (FD, режим) Синхронизация fchmod (). |
16 | fs.lchmod (путь, режим, обратный вызов) Асинхронный lchmod (). Функция обратного вызова не имеет параметров, но может бросить. Доступно только на Mac OS X. |
17 | fs.lchmodSync (путь, режим) Синхронизация lchmod (). |
18 | fs.stat (путь, обратный вызов) Асинхронный стат (). Функция обратного вызова принимает два аргумента: заблуждаетесь, статистика, статистика являются fs.Stats объекта. |
19 | fs.lstat (путь, обратный вызов) Асинхронный lstat (). Функция обратного вызова принимает два аргумента: заблуждаетесь, статистика, статистика являются fs.Stats объекта. |
20 | fs.fstat (FD, обратный вызов) Асинхронный fstat (). Функция обратного вызова принимает два аргумента: заблуждаетесь, статистика, статистика являются fs.Stats объекта. |
21 | fs.statSync (путь) Синхронизация стат (). Fs.Stats возвращают экземпляр. |
22 | fs.lstatSync (путь) Синхронизация lstat (). Fs.Stats возвращают экземпляр. |
23 | fs.fstatSync (FD) Синхронизация fstat (). Fs.Stats возвращают экземпляр. |
24 | fs.link (srcpath, dstpath, обратный вызов) Асинхронный линия связи (). Функция обратного вызова не имеет параметров, но может бросить. |
25 | fs.linkSync (srcpath, dstpath) ссылка синхронизации (). |
26 | fs.symlink (srcpath, dstpath [, тип ], обратный вызов) Асинхронный символьная (). Функция обратного вызова не имеет параметров, но может бросить. Параметр типа может быть установлен в 'директории', 'файл', или '' перехода ( 'файл' по умолчанию). |
27 | fs.symlinkSync (srcpath, dstpath [, тип ]) Синхронизация символьная (). |
28 | fs.readlink (путь, обратный вызов) Асинхронный readlink (). Функция обратного вызова принимает два аргумента: заблуждаетесь, linkString. |
29 | fs.realpath (путь [кэш], обратный вызов) Асинхронный Realpath (). Функция обратного вызова принимает два аргумента: заблуждаетесь, resolvedPath. |
30 | fs.realpathSync (путь [кэш]) Синхронный Realpath (). Возвращает абсолютный путь. |
31 | fs.unlink (путь, обратный вызов) Асинхронный Разорвать связь (). Функция обратного вызова не имеет параметров, но может бросить. |
32 | fs.unlinkSync (путь) Синхронизация Разорвать связь (). |
33 | fs.rmdir (путь, обратный вызов) Асинхронный RmDir (). Функция обратного вызова не имеет параметров, но может бросить. |
34 | fs.rmdirSync (путь) Синхронизация RmDir (). |
35 | fs.mkdir (путь [режим], обратный вызов) S Асинхронный MkDir (2). Функция обратного вызова не имеет параметров, но может бросить. Режим по умолчанию 0777. |
36 | fs.mkdirSync (путь [режим]) Синхронизация MkDir (). |
37 | fs.readdir (путь, обратный вызов) Асинхронный READDIR (3). Прочитайте содержимое каталога. |
38 | fs.readdirSync (путь) Синхронизация READDIR (). Возвращает массив списка файлов. |
39 | fs.close (FD, обратный вызов) Асинхронный близко (). Функция обратного вызова не имеет параметров, но может бросить. |
40 | fs.closeSync (FD) Синхронизация близко (). |
41 | fs.open (путь, флаги [режим ], обратный вызов) Асинхронный открыть файл. |
42 | fs.openSync (путь, флаги [, режим ]) Синхронная версия fs.open (). |
43 | fs.utimes (путь, Atime, время изменения, обратный вызов) |
44 | fs.utimesSync (путь, Atime, время изменения) Изменение временных меток файла, файл по пути к файлу указанного. |
45 | fs.futimes (FD, Atime, время изменения, обратный вызов) |
46 | fs.futimesSync (FD, Atime, время изменения) временные метки файла изменений, указанных в дескрипторе файла. |
47 | fs.fsync (FD, обратный вызов) Асинхронный FSYNC. Функция обратного вызова не имеет параметров, но может бросить. |
48 | fs.fsyncSync (FD) Синхронизация FSYNC. |
49 | fs.write (FD, буфер, смещение, длина [, позиция], обратный вызов) Содержимое буфера записи в файл, указанный дескриптором файла. |
50 | fs.write (FD, данные [, позиция [, кодирование]], обратный вызов) Записать в содержимое файла на дескриптор файла ФД. |
51 | fs.writeSync (FD, буфер, смещение, длина [, позиция]) Синхронная версия fs.write (). |
52 | fs.writeSync (FD, данные [, позиция [, кодирование]]) Синхронная версия fs.write (). |
53 | fs.read (FD, буфер, смещение, длина, положение, обратный вызов) Прочитайте содержание документов на дескриптор файла ФД. |
54 | fs.readSync (FD, буфер, смещение, длина, положение) Синхронная версия fs.read. |
55 | fs.readFile (имя файла [, опции], обратный вызов) Асинхронный прочитать содержимое файла. |
56 | fs.readFileSync (имя файла [, опции]) |
57 | fs.writeFile (имя файла, данные [, опции ], обратный вызов) Асинхронный запись для содержимого файла. |
58 | fs.writeFileSync (имя файла, данные [, опции ]) Синхронная версия fs.writeFile. |
59 | fs.appendFile (имя файла, данные [, опции ], обратный вызов) Асинхронные содержание дополнительного файла. |
60 | fs.appendFileSync (имя файла, данные [, опции ]) Синхронная версия fs.appendFile. |
61 | fs.watchFile (имя файла [, опции], слушатель) Изменить представление файла. |
62 | fs.unwatchFile (имя файла [, слушатель]) Остановить просмотр изменения имени файла. |
63 | fs.watch (имя файла [, опции] [ , слушатель]) Проверьте изменения имени файла, имя файла может быть файл или каталог. Назад fs.FSWatcher объект. |
64 | fs.exists (путь, обратный вызов) Обнаружить данный путь существует. |
65 | fs.existsSync (путь) Синхронные версия fs.exists. |
66 | fs.access (путь [режим], обратный вызов) Проверяет, является ли указанный путь разрешения пользователя. |
67 | fs.accessSync (путь [режим]) Синхронная версия fs.access. |
68 | fs.createReadStream (путь [, опции]) Назад ReadStream объект. |
69 | fs.createWriteStream (путь [, опции]) Назад WriteStream объект. |
70 | fs.symlink (srcpath, dstpath [, тип ], обратный вызов) Асинхронный символьная (). Функция обратного вызова не имеет параметров, но может бросить. |
Для получения более подробной информации, проверить на официальном веб - модуля файла Описание: Файл системы .