sistem file Node.js
Node.js memberikan satu set sama UNIX (POSIX) standar API operasi file. Node Impor File System Module (fs) sintaks adalah sebagai berikut:
var fs = require("fs")
Asynchronous dan sinkron
Node.js sistem file (fs Module) metode modul memiliki versi asynchronous dan synchronous, seperti membaca isi dari fungsi dokumen memiliki asynchronous fs.readFile () dan sinkronisasi fs.readFileSync ().
Metode Asynchronous fungsi parameter terakhir untuk fungsi callback, argumen pertama untuk fungsi callback berisi pesan kesalahan (error).
Saya sarankan adalah dengan menggunakan metode asynchronous, dibandingkan dengan sinkron, metode asynchronous untuk kinerja yang lebih tinggi, lebih cepat, dan tidak ada halangan.
contoh
Membuat file input.txt, sebagai berikut:
本教程官网地址:www.w3big.com 文件读取实例
Membuat file file.js, sebagai berikut:
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("程序执行完毕。");
Kode di atas dijalankan sebagai berikut:
$ node file.js 同步读取: 本教程官网地址:www.w3big.com 文件读取实例 程序执行完毕。 异步读取: 本教程官网地址:www.w3big.com 文件读取实例
Selanjutnya, mari kita memahami metode khusus dalam sistem file Node.js.
Buka file
tatabahasa
Berikut ini adalah file terbuka dalam sintaks modus asynchronous:
fs.open(path, flags[, mode], callback)
parameter
Parameter sebagai berikut:
path - path ke file.
bendera - berkas perilaku terbuka.nilai-nilai tertentu yang dijelaskan di bawah.
Modus - mengatur mode file (izin), membuat file hak akses default 0666 (dibaca, ditulis).
callback - fungsi callback mengambil dua parameter, seperti: callback (err, fd).
bendera parameter dapat menjadi nilai berikut:
bendera | deskripsi |
---|---|
r | Buka file dalam modus baca. Jika file tidak ada lemparan. |
r + | Buka file dalam mode read-write. Jika file tidak ada lemparan. |
rs | Baca file secara sinkron. |
rs + | Secara sinkron untuk membaca dan menulis file. |
w | Membuka file dalam modus menulis, jika file tidak ada itu dibuat. |
wx | 'W', tetapi jika path file ada, kegagalan menulis file yang sama. |
w + | Buka file dalam mode read-write, jika file tidak ada itu dibuat. |
wx + | Mirip 'w +', tetapi jika path file ada, file membaca dan menulis gagal. |
sebuah | Membuka file dalam modus menambahkan, jika file tidak ada itu dibuat. |
kapak | Mirip dengan 'a', tetapi jika path file ada, file append gagal. |
a + | Untuk membaca file dibuka dalam mode append, jika file tidak ada itu dibuat. |
ax + | Mirip 'a +', tetapi jika path file ada, file tersebut dibaca kegagalan tambahan. |
contoh
Selanjutnya kita membuat file file.js dan membuka file input.txt membaca dan menulis kode sebagai berikut:
var fs = require("fs"); // 异步打开文件 console.log("准备打开文件!"); fs.open('input.txt', 'r+', function(err, fd) { if (err) { return console.error(err); } console.log("文件打开成功!"); });
Kode di atas dijalankan sebagai berikut:
$ node file.js 准备打开文件! 文件打开成功!
Mendapatkan informasi file
tatabahasa
Berikut dokumen untuk memperoleh informasi melalui sintaks modus asynchronous:
fs.stat(path, callback)
parameter
Parameter sebagai berikut:
path - path file.
callback - fungsi callback mengambil dua parameter, seperti:(err, statistik), statistik yang fs.Stats obyek.
Setelah fs.stat (jalan) eksekusi, sebuah instance dari kelas akan dikembalikan ke fungsi statistik callback mereka. Anda dapat menentukan atribut yang relevan dari file dengan statistik kelas menyediakan metode. Misalnya, untuk menentukan apakah file:
var fs = require('fs'); fs.stat('/Users/liuht/code/itbilu/demo/fs.js', function (err, stats) { console.log(stats.isFile()); //true })
metode kelas statistik adalah:
cara | deskripsi |
---|---|
stats.isFile () | Jika file mengembalikan nilai true, jika tidak maka kembali palsu. |
stats.isDirectory () | Jika direktori mengembalikan nilai true, jika tidak maka kembali palsu. |
stats.isBlockDevice () | Jika perangkat blok mengembalikan nilai true, jika tidak maka kembali palsu. |
stats.isCharacterDevice () | Jika perangkat adalah karakter mengembalikan true, jika tidak kembali palsu. |
stats.isSymbolicLink () | Jika itu adalah soft link untuk kembali benar, jika tidak maka kembali palsu. |
stats.isFIFO () | Jika FIFO, mengembalikan benar, jika tidak maka kembali palsu. FIFO adalah tipe khusus dari pipa perintah UNIX. |
stats.isSocket () | Jika Socket mengembalikan nilai true, jika tidak maka kembali palsu. |
contoh
Selanjutnya kita membuat file file.js, kode tersebut adalah sebagai berikut:
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()); });
Kode di atas dijalankan sebagai berikut:
$ 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
Menulis ke file
tatabahasa
Berikut ini ditulis ke file dalam sintaks modus asynchronous:
fs.writeFile(filename, data[, options], callback)
Jika file ada, metode menulis isi akan menimpa isi file lama.
parameter
Parameter sebagai berikut:
path - path file.
Data - data yang akan ditulis ke file, yang dapat String (String) atau Buffer (stream) objek.
Pilihan - Parameter ini adalah obyek yang berisi {encoding, modus, bendera}.Penyandian default adalah utf8, modus 0666, bendera 'w'
callback - fungsi callback, fungsi callback berisi pesan hanya kesalahan argumen (err), kembali saat menulis gagal.
contoh
Selanjutnya kita membuat file file.js, kode tersebut adalah sebagai berikut:
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()); }); });
Kode di atas dijalankan sebagai berikut:
$ node file.js 准备写入文件 数据写入成功! --------我是分割线------------- 读取写入的数据! 异步读取文件数据: 我是通过写入的文件内容
Membaca file
tatabahasa
Berikut adalah modus Asynchronous untuk membaca sintaks file:
fs.read(fd, buffer, offset, length, position, callback)
Metode ini menggunakan file descriptor untuk membaca file.
parameter
Parameter sebagai berikut:
fd - kembali melalui () metode fs.open dari deskriptor file.
penyangga - data ditulis ke buffer.
diimbangi - diimbangi menulis buffer ditulis.
Panjang - Jumlah byte yang dibaca dari file tersebut.
Posisi - awal file dibaca, jika posisi nol, dibaca dari posisi saat ini dari pointer file.
callback - fungsi callback mengambil tiga argumen berbuat salah, bytesRead, penyangga, err pesan kesalahan, bytesRead menunjukkan jumlah byte baca, penyangga objek penyangga.
contoh
Isi input.txt file:
本教程官网地址:www.w3big.com
Selanjutnya kita membuat file file.js, kode tersebut adalah sebagai berikut:
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()); } }); });
Kode di atas dijalankan sebagai berikut:
$ node file.js 准备打开已存在的文件! 文件打开成功! 准备读取文件: 42 字节被读取 本教程官网地址:www.w3big.com
Menutup file
tatabahasa
Berikut ini adalah file tertutup dalam sintaks modus asynchronous:
fs.close(fd, callback)
Metode ini menggunakan file descriptor untuk membaca file.
parameter
Parameter sebagai berikut:
fd - kembali melalui () metode fs.open dari deskriptor file.
callback - fungsi callback tidak memiliki parameter.
contoh
Isi input.txt file:
本教程官网地址:www.w3big.com
Selanjutnya kita membuat file file.js, kode tersebut adalah sebagai berikut:
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("文件关闭成功"); }); }); });
Kode di atas dijalankan sebagai berikut:
$ node file.js 准备打开文件! 文件打开成功! 准备读取文件! 本教程官网地址:www.w3big.com 文件关闭成功
File intercept
tatabahasa
Berikut ini adalah sintaks asynchronous modus intersepsi file:
fs.ftruncate(fd, len, callback)
Metode ini menggunakan file descriptor untuk membaca file.
parameter
Parameter sebagai berikut:
fd - kembali melalui () metode fs.open dari deskriptor file.
len - panjang isi dari file dicegat.
callback - fungsi callback tidak memiliki parameter.
contoh
Isi input.txt file:
site:www.w3big.com
Selanjutnya kita membuat file file.js, kode tersebut adalah sebagai berikut:
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("文件关闭成功!"); }); }); }); });
Kode di atas dijalankan sebagai berikut:
$ node file.js 准备打开文件! 文件打开成功! 截取10字节后的文件内容。 文件截取成功。 读取相同的文件 site:www.r 文件关闭成功
Hapus File
tatabahasa
Berikut ini adalah sintaks untuk menghapus file:
fs.unlink(path, callback)
parameter
Parameter sebagai berikut:
path - path file.
callback - fungsi callback tidak memiliki parameter.
contoh
Isi input.txt file:
site:www.w3big.com
Selanjutnya kita membuat file file.js, kode tersebut adalah sebagai berikut:
var fs = require("fs"); console.log("准备删除文件!"); fs.unlink('input.txt', function(err) { if (err) { return console.error(err); } console.log("文件删除成功!"); });
Kode di atas dijalankan sebagai berikut:
$ node file.js 准备删除文件! 文件删除成功!
Lihat file input.txt lagi dan menemukan tidak ada lagi.
Buat direktori
tatabahasa
Berikut ini adalah sintaks untuk membuat direktori:
fs.mkdir(path[, mode], callback)
parameter
Parameter sebagai berikut:
path - path file.
Modus - mengatur hak akses direktori, default adalah 0777.
callback - fungsi callback tidak memiliki parameter.
contoh
Selanjutnya kita membuat file file.js, kode tersebut adalah sebagai berikut:
var fs = require("fs"); console.log("创建目录 /tmp/test/"); fs.mkdir("/tmp/test/",function(err){ if (err) { return console.error(err); } console.log("目录创建成功。"); });
Kode di atas dijalankan sebagai berikut:
$ node file.js 创建目录 /tmp/test/ 目录创建成功。
membaca direktori
tatabahasa
Berikut ini adalah sintaks untuk membaca direktori:
fs.readdir(path, callback)
parameter
Parameter sebagai berikut:
path - path file.
callback - fungsi callback, fungsi callback membutuhkan dua argumen berbuat salah, file, pesan kesalahan err, file untuk file daftar array dalam direktori.
contoh
Selanjutnya kita membuat file file.js, kode tersebut adalah sebagai berikut:
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 ); }); });
Kode di atas dijalankan sebagai berikut:
$ node file.js 查看 /tmp 目录 input.out output.out test test.txt
menghapus direktori
tatabahasa
Berikut ini adalah sintaks untuk menghapus direktori:
fs.rmdir(path, callback)
parameter
Parameter sebagai berikut:
path - path file.
callback - fungsi callback tidak memiliki parameter.
contoh
Selanjutnya kita membuat file file.js, kode tersebut adalah sebagai berikut:
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 ); }); }); });
Kode di atas dijalankan sebagai berikut:
$ node file.js 准备删除目录 /tmp/test input.out output.out test test.txt 读取 /tmp 目录 ……
metode file modul referensi
Berikut ini adalah daftar file dengan cara yang sama Node.js modul:
Tidak. | Metode & deskripsi |
---|---|
1 | fs.rename (oldPath, newpath, callback) Asynchronous rename (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
2 | fs.ftruncate (fd, len, callback) Asynchronous ftruncate (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
3 | fs.ftruncateSync (fd, len) Sinkronisasi ftruncate () |
4 | fs.truncate (jalan, len, callback) Asynchronous truncate (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
5 | fs.truncateSync (jalan, len) Sinkronisasi truncate () |
6 | fs.chown (jalan, uid, gid, callback) Asynchronous chown fungsi Callback (). Tidak memiliki parameter, tapi mungkin membuang. |
7 | fs.chownSync (jalan, uid, gid) Sinkronisasi chown () |
8 | fs.fchown (fd, uid, gid, callback) Asynchronous fchown (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
9 | fs.fchownSync (fd, uid, gid) Sinkronisasi fchown () |
10 | fs.lchown (jalan, uid, gid, callback) Asynchronous lchown (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
11 | fs.lchownSync (jalan, uid, gid) Sinkronisasi lchown () |
12 | fs.chmod (jalan, modus, callback) Asynchronous chmod (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
13 | fs.chmodSync (jalan, modus) Sinkronisasi chmod (). |
14 | fs.fchmod (fd, modus, callback) Asynchronous fchmod (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
15 | fs.fchmodSync (fd, modus) Sinkronisasi fchmod (). |
16 | fs.lchmod (jalan, modus, callback) Asynchronous lchmod (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. Hanya tersedia di Mac OS X. |
17 | fs.lchmodSync (jalan, modus) Sinkronisasi lchmod (). |
18 | fs.stat (jalan, callback) Asynchronous stat (). Fungsi Callback membutuhkan dua argumen berbuat salah, statistik, statistik yang fs.Stats obyek. |
19 | fs.lstat (jalan, callback) Asynchronous lstat (). Fungsi Callback membutuhkan dua argumen berbuat salah, statistik, statistik yang fs.Stats obyek. |
20 | fs.fstat (fd, callback) Asynchronous fstat (). Fungsi Callback membutuhkan dua argumen berbuat salah, statistik, statistik yang fs.Stats obyek. |
21 | fs.statSync (jalan) Sinkronisasi stat (). Fs.Stats kembali contoh. |
22 | fs.lstatSync (jalan) Sinkronisasi lstat (). Fs.Stats kembali contoh. |
23 | fs.fstatSync (fd) Sinkronisasi fstat (). Fs.Stats kembali contoh. |
24 | fs.link (srcpath, dstpath, callback) Link Asynchronous (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
25 | fs.linkSync (srcpath, dstpath) Sinkronisasi Link (). |
26 | fs.symlink (srcpath, dstpath [, jenis ], callback) Asynchronous symlink (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. Jenis parameter dapat diatur untuk 'dir', 'berkas', atau 'persimpangan' (default 'file'). |
27 | fs.symlinkSync (srcpath, dstpath [, jenis ]) Sinkronisasi symlink (). |
28 | fs.readlink (jalan, callback) Asynchronous readlink (). Fungsi Callback membutuhkan dua argumen berbuat salah, linkString. |
29 | fs.realpath (path [, cache], callback) Asynchronous realpath (). Fungsi Callback membutuhkan dua argumen berbuat salah, resolvedPath. |
30 | fs.realpathSync (path [, cache]) Synchronous realpath (). Mengembalikan path absolut. |
31 | fs.unlink (jalan, callback) Asynchronous unlink (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
32 | fs.unlinkSync (jalan) Sinkronisasi unlink (). |
33 | fs.rmdir (jalan, callback) Asynchronous rmdir (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
34 | fs.rmdirSync (jalan) Sinkronisasi rmdir (). |
35 | fs.mkdir (path [, modus], callback) S Asynchronous mkdir fungsi Callback (2). Tidak memiliki parameter, tapi mungkin membuang. Modus default ke 0777. |
36 | fs.mkdirSync (path [, modus]) Sinkronisasi mkdir (). |
37 | fs.readdir (jalan, callback) readdir Asynchronous (3). Baca isi direktori. |
38 | fs.readdirSync (jalan) Sinkronisasi readdir (). Mengembalikan array daftar file. |
39 | fs.close (fd, callback) Asynchronous dekat Callback fungsi (). Tidak memiliki parameter, tapi mungkin membuang. |
40 | fs.closeSync (fd) Sinkronisasi dekat (). |
41 | fs.open (jalan, bendera [, modus ], callback) Asynchronous membuka file. |
42 | fs.openSync (jalan, bendera [, modus ]) Versi sinkron fs.open (). |
43 | fs.utimes (jalan, atime, chan, callback) |
44 | fs.utimesSync (jalan, atime, chan) Merubah file cap waktu, file dengan path file yang ditentukan. |
45 | fs.futimes (fd, atime, chan, callback) |
46 | fs.futimesSync (fd, atime, chan) File cap waktu perubahan, ditentukan oleh file descriptor. |
47 | fs.fsync (fd, callback) Asynchronous fungsi Callback fsync. Tidak memiliki parameter, tapi mungkin membuang. |
48 | fs.fsyncSync (fd) Sinkronisasi fsync. |
49 | fs.write (fd, penyangga, offset, panjang [, posisi], callback) Isi menulis buffer ke file yang ditentukan oleh file descriptor. |
50 | fs.write (fd, Data [, posisi [, encoding]], callback) Menulis ke isi file pada file descriptor fd. |
51 | fs.writeSync (fd, penyangga, offset, panjang [, posisi]) Versi sinkron fs.write (). |
52 | fs.writeSync (fd, Data [, posisi [, encoding]]) Versi sinkron fs.write (). |
53 | fs.read (fd, penyangga, offset, panjang, posisi, callback) Membaca isi dokumen pada file descriptor fd. |
54 | fs.readSync (fd, penyangga, offset, panjang, posisi) Versi sinkron fs.read. |
55 | fs.readFile (nama file [Opsi], callback) Asynchronous membaca isi file. |
56 | fs.readFileSync (nama file [Opsi]) |
57 | fs.writeFile (nama file, data yang [Opsi ], callback) Asynchronous menulis untuk isi file. |
58 | fs.writeFileSync (nama file, data yang [Opsi ]) Versi sinkron fs.writeFile. |
59 | fs.appendFile (nama file, data yang [Opsi ], callback) Asynchronous isi file tambahan. |
60 | fs.appendFileSync (nama file, data yang [Opsi ]) Versi sinkron fs.appendFile. |
61 | fs.watchFile (nama file [Opsi], pendengar) Mengubah tampilan dari file. |
62 | fs.unwatchFile (nama file [, pendengar]) Berhenti melihat perubahan nama file. |
63 | fs.watch (nama file [Opsi] [ , pendengar]) Memeriksa perubahan nama file, nama file bisa berupa file atau direktori. objek kembali fs.FSWatcher. |
64 | fs.exists (jalan, callback) Mendeteksi path yang diberikan ada. |
65 | fs.existsSync (jalan) Versi sinkron fs.exists. |
66 | fs.access (path [, modus], callback) Tes jika jalur tertentu dari akses user. |
67 | fs.accessSync (path [, modus]) Versi sinkron fs.access. |
68 | fs.createReadStream (path [Opsi]) Kembali objek ReadStream. |
69 | fs.createWriteStream (path [Opsi]) Kembali objek WriteStream. |
70 | fs.symlink (srcpath, dstpath [, jenis ], callback) Asynchronous symlink (). Callback fungsi tidak memiliki parameter, tapi mungkin membuang. |
Untuk lebih jelasnya, lihat situs resmi Berkas Modul Keterangan: File System yang .