Najlepszy samouczek Node.js system plików W 2024 r. W tym samouczku możesz dowiedzieć się Synchroniczna i asynchroniczna,Otwórz plik,Uzyskiwanie informacji o pliku,Zapis do pliku,Przeczytaj plik,Zamknij plik,Intercept pliku,Usuń pliki,Utwórz katalog,Czytaj katalog,Usuń katalog,Referencyjna metoda Moduł pliku,
Node.js oferuje podobny zestaw Unix (POSIX) standardowych operacji na plikach API. Moduł składni systemu węzeł importu plików (FS) jest następujący:
var fs = require("fs")
Node.js system plików (fs Module) Moduł posiada metody synchroniczne i asynchroniczne wersje, takie jak czytanie treści dokumentu posiada funkcję asynchronicznego fs.readFile () i synchronizacja fs.readFileSync ().
Asynchroniczne funkcje metoda ostatni parametr do funkcji wywołania zwrotnego, pierwszy argument do funkcji zwrotnej zawiera komunikat o błędzie (ERROR).
Polecam jest użycie metody asynchronicznego, w porównaniu do synchronicznej, asynchronicznej metody wyższej wydajności, szybciej, i nie ma żadnych przeszkód.
Tworzenie input.txt pliku, w sposób następujący:
本教程官网地址:www.w3write.com 文件读取实例
Tworzenie file.js pliku, w sposób następujący:
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("程序执行完毕。");
Powyższy kod jest wykonywany w następujący sposób:
$ node file.js 同步读取: 本教程官网地址:www.w3write.com 文件读取实例 程序执行完毕。 异步读取: 本教程官网地址:www.w3write.com 文件读取实例
Następnie pozwól nam zrozumieć specyficzne metody pod kontrolą systemu plików node.js.
Następujący plik jest otwarty w trybie asynchronicznym składni:
fs.open(path, flags[, mode], callback)
Następujące parametry:
path - ścieżka do pliku.
flagi - otwórz plik zachowanie.Wartości konkretne opisane poniżej.
mode - ustaw tryb pliku (uprawnienia), należy utworzyć plik uprawnienia domyślne 0666 (czytelny zapisu).
oddzwaniania - funkcja zwrotna ma dwa parametry, takie jak: zwrotnego (ERR, fd).
Parametr flags może być następujące wartości:
flaga | opis |
---|---|
R | Otwórz plik w trybie odczytu. Jeśli plik nie istnieje rzut. |
R + | Otwórz plik w trybie odczytu i zapisu. Jeśli plik nie istnieje rzut. |
rs | Czytaj plik w sposób synchroniczny. |
RS + | W zsynchronizowany sposób do odczytu i zapisu plików. |
w | Otwórz plik w trybie zapisu, jeśli plik nie istnieje, zostanie utworzony. |
wx | Podobny 'w', ale jeśli istnieje ścieżka do pliku, brak zapisu plików. |
w + | Otwórz plik w trybie odczytu i zapisu, jeśli plik nie istnieje, zostanie utworzony. |
wx + | Podobny 'w +', ale jeśli istnieje ścieżka do pliku, plik do odczytu i zapisu nie powiodła się. |
Otwórz plik w trybie dopisywania, jeśli plik nie istnieje, zostanie utworzony. | |
siekiera | Podobny do 'A', ale jeśli istnieje ścieżka plików, file zawiedzie. |
a + | Aby odczytać plik otwierany w trybie dopisywania, jeśli plik nie istnieje, zostanie utworzony. |
ax + | Podobny "A +", ale jeśli istnieje ścieżka do pliku, plik jest odczytywany dodatkowych uszkodzeń. |
Następnie tworzymy plik file.js i otwiera input.txt plików czytać i pisać kod w następujący sposób:
var fs = require("fs"); // 异步打开文件 console.log("准备打开文件!"); fs.open('input.txt', 'r+', function(err, fd) { if (err) { return console.error(err); } console.log("文件打开成功!"); });
Powyższy kod jest wykonywany w następujący sposób:
$ node file.js 准备打开文件! 文件打开成功!
Następujące dokumenty w celu uzyskania informacji za pomocą składni trybie asynchronicznym:
fs.stat(path, callback)
Następujące parametry:
path - ścieżka do pliku.
oddzwaniania - funkcja zwrotna ma dwa parametry, takie jak:(eee, statystyki), statystyki są fs.Stats obiektu.
Po fs.stat (ścieżka) wykonanie, instancją klasy będą zwracane do ich funkcji statystyki zwrotnego. Można określić odpowiednie atrybuty pliku, statystyki klasa dostarcza sposób. Na przykład, w celu określenia, czy plikach:
var fs = require('fs'); fs.stat('/Users/liuht/code/itbilu/demo/fs.js', function (err, stats) { console.log(stats.isFile()); //true })
Metody klasy statystyki są następujące:
sposób | opis |
---|---|
stats.isFile () | Jeśli plik zwraca wartość true, w przeciwnym razie zwraca false. |
stats.isDirectory () | Jeśli katalog zwraca wartość true, w przeciwnym razie zwraca false. |
stats.isBlockDevice () | Jeśli urządzenie blok zwraca true, w przeciwnym razie zwraca false. |
stats.isCharacterDevice () | Jeśli urządzenie jest postacią zwraca wartość true, w przeciwnym razie zwraca false. |
stats.isSymbolicLink () | Jeśli jest to miękka link return true, w przeciwnym razie zwraca false. |
stats.isFIFO () | Jeśli FIFO, zwraca wartość true, w przeciwnym razie zwraca false. FIFO jest specjalnym typem polecenia rurociągu UNIX. |
stats.isSocket () | Jeśli Gniazdo zwraca wartość true, w przeciwnym razie zwraca false. |
Następnie tworzymy file.js pliku, kod jest w następujący sposób:
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()); });
Powyższy kod jest wykonywany w następujący sposób:
$ 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
Poniżej zamieszczona jest zapisywany do pliku w trybie asynchronicznym składni:
fs.writeFile(filename, data[, options], callback)
Jeśli plik istnieje, metoda zapisuje treść zastąpią stare zawartość pliku.
Następujące parametry:
path - ścieżka do pliku.
danych - dane, które mają być zapisane do pliku, który może być String (String) lub bufor (stream) obiektu.
Opcje - Ten parametr jest obiektem, który zawiera {kodowania, tryb, flaga}.Domyślne kodowanie jest utf8, 0666, flaga 'w'
oddzwaniania - funkcja zwrotna, funkcja zwrotna zawiera komunikaty o błędach tylko argumenty (ERR), powraca pisząc zawiedzie.
Następnie tworzymy file.js pliku, kod jest w następujący sposób:
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()); }); });
Powyższy kod jest wykonywany w następujący sposób:
$ node file.js 准备写入文件 数据写入成功! --------我是分割线------------- 读取写入的数据! 异步读取文件数据: 我是通过写入的文件内容
Oto Tryb asynchroniczny czytać składnię pliku:
fs.read(fd, buffer, offset, length, position, callback)
Metoda ta wykorzystuje deskryptor pliku do odczytu pliku.
Następujące parametry:
fd - z powrotem przez fs.open () metody deskryptorów.
Bufor - dane są zapisywane w buforze.
Przesunięcie - przesunięcie bufora zapisu jest napisane.
Długość - liczba bajtów odczytanych z pliku.
Stanowisko - początek pliku jest odczytywany, jeśli pozycja jest pusta, jest odczytywany z bieżącej pozycji wskaźnika pliku.
oddzwaniania - funkcja zwrotna trwa trzy argumenty błądzić, bytesRead, bufor, eee komunikat o błędzie, bytesRead wskazuje liczbę bajtów do odczytu, bufor obiekt bufora.
input.txt zawartość pliku:
本教程官网地址:www.w3write.com
Następnie tworzymy file.js pliku, kod jest w następujący sposób:
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()); } }); });
Powyższy kod jest wykonywany w następujący sposób:
$ node file.js 准备打开已存在的文件! 文件打开成功! 准备读取文件: 42 字节被读取 本教程官网地址:www.w3write.com
Poniżej znajduje się plik składni zamknięte w trybie asynchronicznym:
fs.close(fd, callback)
Metoda ta wykorzystuje deskryptor pliku do odczytu pliku.
Następujące parametry:
fd - z powrotem przez fs.open () metody deskryptorów.
oddzwaniania - funkcja zwrotna ma żadnych parametrów.
input.txt zawartość pliku:
本教程官网地址:www.w3write.com
Następnie tworzymy file.js pliku, kod jest w następujący sposób:
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("文件关闭成功"); }); }); });
Powyższy kod jest wykonywany w następujący sposób:
$ node file.js 准备打开文件! 文件打开成功! 准备读取文件! 本教程官网地址:www.w3write.com 文件关闭成功
Poniżej znajduje się składnia asynchronicznego trybu przechwytywania pliku:
fs.ftruncate(fd, len, callback)
Metoda ta wykorzystuje deskryptor pliku do odczytu pliku.
Następujące parametry:
fd - z powrotem przez fs.open () metody deskryptorów.
len - długość zawartości pliku przechwycone.
oddzwaniania - funkcja zwrotna ma żadnych parametrów.
input.txt zawartość pliku:
site:www.w3write.com
Następnie tworzymy file.js pliku, kod jest w następujący sposób:
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("文件关闭成功!"); }); }); }); });
Powyższy kod jest wykonywany w następujący sposób:
$ node file.js 准备打开文件! 文件打开成功! 截取10字节后的文件内容。 文件截取成功。 读取相同的文件 site:www.r 文件关闭成功
Poniżej znajduje się składnia, aby usunąć plik:
fs.unlink(path, callback)
Następujące parametry:
path - ścieżka do pliku.
oddzwaniania - funkcja zwrotna ma żadnych parametrów.
input.txt zawartość pliku:
site:www.w3write.com
Następnie tworzymy file.js pliku, kod jest w następujący sposób:
var fs = require("fs"); console.log("准备删除文件!"); fs.unlink('input.txt', function(err) { if (err) { return console.error(err); } console.log("文件删除成功!"); });
Powyższy kod jest wykonywany w następujący sposób:
$ node file.js 准备删除文件! 文件删除成功!
Zobacz input.txt plik jeszcze raz i okazało się, już nie istnieje.
Poniżej znajduje się składnia utworzenia katalogu:
fs.mkdir(path[, mode], callback)
Następujące parametry:
path - ścieżka do pliku.
mode - ustawić uprawnienia katalogów, domyślnie jest 0777.
oddzwaniania - funkcja zwrotna ma żadnych parametrów.
Następnie tworzymy file.js pliku, kod jest w następujący sposób:
var fs = require("fs"); console.log("创建目录 /tmp/test/"); fs.mkdir("/tmp/test/",function(err){ if (err) { return console.error(err); } console.log("目录创建成功。"); });
Powyższy kod jest wykonywany w następujący sposób:
$ node file.js 创建目录 /tmp/test/ 目录创建成功。
Poniżej znajduje się składnia czytania z katalogu:
fs.readdir(path, callback)
Następujące parametry:
path - ścieżka do pliku.
oddzwaniania - funkcja zwrotna, funkcja oddzwaniania trwa dwa argumenty błądzić, pliki, err komunikat o błędzie, pliki dla plików listy tablicy w katalogu.
Następnie tworzymy file.js pliku, kod jest w następujący sposób:
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 ); }); });
Powyższy kod jest wykonywany w następujący sposób:
$ node file.js 查看 /tmp 目录 input.out output.out test test.txt
Poniżej znajduje się składnia usunąć katalog:
fs.rmdir(path, callback)
Następujące parametry:
path - ścieżka do pliku.
oddzwaniania - funkcja zwrotna ma żadnych parametrów.
Następnie tworzymy file.js pliku, kod jest w następujący sposób:
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 ); }); }); });
Powyższy kod jest wykonywany w następujący sposób:
$ node file.js 准备删除目录 /tmp/test input.out output.out test test.txt 读取 /tmp 目录 ……
Poniżej znajduje się lista plików w ten sam sposób node.js moduły:
Nie. | Sposób i opis |
---|---|
1 | fs.rename (oldpath, newpath, callback) Asynchronous zmiany nazwy funkcji oddzwaniania (). Nie ma parametrów, ale może rzucać. |
2 | fs.ftruncate (fd, len, callback) Asynchronous ftruncate funkcja oddzwaniania (). Nie ma parametrów, ale może rzucać. |
3 | fs.ftruncateSync (fd, len) ftruncate synchronizacji () |
4 | fs.truncate (path, len, callback) Funkcja oddzwaniania Asynchronous truncate (). Nie ma parametrów, ale może rzucać. |
5 | fs.truncateSync (path, len) Synchronizacja truncate () |
6 | fs.chown (path, uid, gid, callback) Funkcja oddzwaniania Asynchronous chown (). Nie ma parametrów, ale może rzucać. |
7 | fs.chownSync (path, uid, gid) Synchronizacja chown () |
8 | fs.fchown (fd, uid, gid, callback) Asynchronous fchown funkcja oddzwaniania (). Nie ma parametrów, ale może rzucać. |
9 | fs.fchownSync (fd, UID, GID) fchown synchronizacji () |
10 | fs.lchown (path, uid, gid, callback) Asynchronous lchown funkcja oddzwaniania (). Nie ma parametrów, ale może rzucać. |
11 | fs.lchownSync (path, uid, gid) lchown synchronizacji () |
12 | fs.chmod (ścieżka, tryb, callback) Funkcja oddzwaniania Asynchronous chmod (). Nie ma parametrów, ale może rzucać. |
13 | fs.chmodSync (ścieżka, tryb) Synchronizacja chmod (). |
14 | fs.fchmod (fd, tryb, callback) Asynchronous fchmod funkcja oddzwaniania (). Nie ma parametrów, ale może rzucać. |
15 | fs.fchmodSync (fd, tryb) fchmod synchronizacji (). |
16 | fs.lchmod (ścieżka, tryb, callback) Asynchronous lchmod funkcja oddzwaniania (). Nie ma parametrów, ale może rzucać. Opcja dostępna tylko w systemie Mac OS X. |
17 | fs.lchmodSync (ścieżka, tryb) lchmod synchronizacji (). |
18 | fs.stat (path, callback) Asynchronous stat (). Funkcja oddzwaniania trwa dwa argumenty błądzić, statystyki, statystyki są fs.Stats obiektu. |
19 | fs.lstat (path, callback) Asynchronous lstat (). Funkcja oddzwaniania trwa dwa argumenty błądzić, statystyki, statystyki są fs.Stats obiektu. |
20 | fs.fstat (fd, callback) Asynchronous fstat (). Funkcja oddzwaniania trwa dwa argumenty błądzić, statystyki, statystyki są fs.Stats obiektu. |
21 | fs.statSync (path) Synchronizacja stat (). Fs.Stats zwracać instancję. |
22 | fs.lstatSync (path) lstat synchronizacji (). Fs.Stats zwracać instancję. |
23 | fs.fstatSync (fd) fstat synchronizacji (). Fs.Stats zwracać instancję. |
24 | fs.link (srcpath, dstpath, callback) Asynchronous Link Funkcja oddzwaniania (). Nie ma parametrów, ale może rzucać. |
25 | fs.linkSync (srcpath, dstpath) Link Synchronizacja (). |
26 | fs.symlink (srcpath, dstpath [typ ], callback) Asynchronous dowiązaniem funkcja oddzwaniania (). Nie ma parametrów, ale może rzucać. Parametr typu może być ustawiony na "dir", "akt", lub "węzła" (domyślnie "Plik"). |
27 | fs.symlinkSync (srcpath, dstpath [typ ]) symlink synchronizacji (). |
28 | fs.readlink (path, callback) Asynchronous readlink (). Funkcja oddzwaniania trwa dwa argumenty błądzić, linkString. |
29 | fs.realpath (path [cache], callback) Asynchronous realpath (). Funkcja oddzwaniania trwa dwa argumenty błądzić, resolvedPath. |
30 | fs.realpathSync (path [cache]) Synchroniczne realpath (). Zwraca ścieżkę bezwzględną. |
31 | fs.unlink (path, callback) Asynchronous odłączenie funkcji oddzwaniania (). Nie ma parametrów, ale może rzucać. |
32 | fs.unlinkSync (path) Synchronizacja unlink (). |
33 | fs.rmdir (path, callback) Asynchronous rmdir funkcji oddzwaniania (). Nie ma parametrów, ale może rzucać. |
34 | fs.rmdirSync (path) rmdir synchronizacji (). |
35 | fs.mkdir (path [Tryb], callback) S Asynchronous mkdir funkcja oddzwaniania (2). Nie ma parametrów, ale może rzucać. Domyślnie tryb służy do 0777. |
36 | fs.mkdirSync (path [, mode]) Synchronizacja mkdir (). |
37 | fs.readdir (path, callback) Asynchronous readdir (3). Czyta zawartość katalogu. |
38 | fs.readdirSync (path) Synchronizacja readdir (). Zwraca tablicę z listą plików. |
39 | fs.close (fd, callback) Asynchronous blisko funkcja oddzwaniania (). Nie ma parametrów, ale może rzucać. |
40 | fs.closeSync (fd) blisko Synchronizacja (). |
41 | fs.open (path, flagi [Tryb ], callback) Asynchronous otworzyć plik. |
42 | fs.openSync (path, flagi [tryb ]) Synchroniczne wersja fs.open (). |
43 | fs.utimes (ścieżki, czas dostepu, callback) |
44 | fs.utimesSync (ścieżki, czas dostepu) Zmienić znaczniki czasu plików, plik po ścieżce określonego pliku. |
45 | fs.futimes (fd, czas dostepu, callback) |
46 | fs.futimesSync (fd, czas dostepu) Zmiany czasu pliku, określony przez deskryptor pliku. |
47 | fs.fsync (fd, callback) Funkcja oddzwaniania Asynchronous fsync. nie posiada żadnych parametrów, ale może rzucać. |
48 | fs.fsyncSync (fd) fsync synchronizacji. |
49 | fs.write (fd, bufor, offset, długość [pozycja], callback) Zawartość bufora zapisu pliku określonym przez deskryptor pliku. |
50 | fs.write (fd dane [, pozycja [kodowanie]], callback) Napisz do zawartości plików na deskryptora pliku fd. |
51 | fs.writeSync (fd, bufor, offset, długość [pozycja]) Synchroniczne wersja fs.write (). |
52 | fs.writeSync (FD dane [, pozycja [kodującego]]) Synchroniczne wersja fs.write (). |
53 | fs.read (fd, bufor, offset, długość, położenie, callback) Czytaj zawartość dokumentów dotyczących deskryptora pliku fd. |
54 | fs.readSync (fd, bufor, offset, długość, położenie) Synchroniczne wersja fs.read. |
55 | fs.readFile (filename [opcje], callback) Asynchronous odczytać zawartość plików. |
56 | fs.readFileSync (filename [opcje]) |
57 | fs.writeFile (nazwa pliku, data [opcje ], callback) Asynchronous napisz do zawartości pliku. |
58 | fs.writeFileSync (nazwa pliku, data [opcje ]) Synchroniczne wersja fs.writeFile. |
59 | fs.appendFile (nazwa pliku, data [opcje ], callback) Asynchroniczne zawartość dodatkowa plików. |
60 | fs.appendFileSync (nazwa pliku, data [opcje ]) Synchroniczna wersja fs.appendFile. |
61 | fs.watchFile (filename [opcje], słuchacz) Modyfikowanie widoku pliku. |
62 | fs.unwatchFile (filename [, słuchacz]) Przerwać oglądanie zmiany nazw plików. |
63 | fs.watch (filename [opcje] [ , słuchacz]) Sprawdź zmiany nazwy pliku, nazwa pliku może być plik lub katalog. Powrót fs.FSWatcher obiektu. |
64 | fs.exists (path, callback) Wykrywanie istnieje dana droga. |
65 | fs.existsSync (path) Synchroniczne fs.exists wersja. |
66 | fs.access (path [Tryb], callback) Testy jeśli określona ścieżka od uprawnień użytkownika. |
67 | fs.accessSync (path [, mode]) Synchroniczne wersja fs.access. |
68 | fs.createReadStream (path [opcje]) Powrót obiektu ReadStream. |
69 | fs.createWriteStream (path [opcje]) Powrót obiektu WriteStream. |
70 | fs.symlink (srcpath, dstpath [typ ], callback) Asynchronous dowiązaniem funkcja oddzwaniania (). Nie ma parametrów, ale może rzucać. |
Aby uzyskać więcej informacji, zajrzyj na oficjalną stronę internetową Module Opis pliku: File System .