Node.js system plików
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")
Synchroniczna i asynchroniczna
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.
Przykłady
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.
Otwórz plik
gramatyka
Następujący plik jest otwarty w trybie asynchronicznym składni:
fs.open(path, flags[, mode], callback)
parametry
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ń. |
Przykłady
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 准备打开文件! 文件打开成功!
Uzyskiwanie informacji o pliku
gramatyka
Następujące dokumenty w celu uzyskania informacji za pomocą składni trybie asynchronicznym:
fs.stat(path, callback)
parametry
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. |
Przykłady
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
Zapis do pliku
gramatyka
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.
parametry
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.
Przykłady
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 准备写入文件 数据写入成功! --------我是分割线------------- 读取写入的数据! 异步读取文件数据: 我是通过写入的文件内容
Przeczytaj plik
gramatyka
Oto Tryb asynchroniczny czytać składnię pliku:
fs.read(fd, buffer, offset, length, position, callback)
Metoda ta wykorzystuje deskryptor pliku do odczytu pliku.
parametry
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.
Przykłady
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
Zamknij plik
gramatyka
Poniżej znajduje się plik składni zamknięte w trybie asynchronicznym:
fs.close(fd, callback)
Metoda ta wykorzystuje deskryptor pliku do odczytu pliku.
parametry
Następujące parametry:
fd - z powrotem przez fs.open () metody deskryptorów.
oddzwaniania - funkcja zwrotna ma żadnych parametrów.
Przykłady
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 文件关闭成功
Intercept pliku
gramatyka
Poniżej znajduje się składnia asynchronicznego trybu przechwytywania pliku:
fs.ftruncate(fd, len, callback)
Metoda ta wykorzystuje deskryptor pliku do odczytu pliku.
parametry
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.
Przykłady
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 文件关闭成功
Usuń pliki
gramatyka
Poniżej znajduje się składnia, aby usunąć plik:
fs.unlink(path, callback)
parametry
Następujące parametry:
path - ścieżka do pliku.
oddzwaniania - funkcja zwrotna ma żadnych parametrów.
Przykłady
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.
Utwórz katalog
gramatyka
Poniżej znajduje się składnia utworzenia katalogu:
fs.mkdir(path[, mode], callback)
parametry
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.
Przykłady
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/ 目录创建成功。
Czytaj katalog
gramatyka
Poniżej znajduje się składnia czytania z katalogu:
fs.readdir(path, callback)
parametry
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.
Przykłady
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
Usuń katalog
gramatyka
Poniżej znajduje się składnia usunąć katalog:
fs.rmdir(path, callback)
parametry
Następujące parametry:
path - ścieżka do pliku.
oddzwaniania - funkcja zwrotna ma żadnych parametrów.
Przykłady
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 目录 ……
Referencyjna metoda Moduł pliku
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 .