Latest web development tutorials

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 .