O melhor tutorial sistema de arquivos Node.js em 2024. Neste tutorial você pode aprender Síncrona e assíncrona,Abra o arquivo,Obtendo informações do arquivo,Gravar no arquivo,Leia o arquivo,Feche o arquivo,arquivo Intercept,excluir arquivos,Crie um diretório,Leia diretório,Remover diretório,Referência método módulo de arquivo,

sistema de arquivos Node.js

Node.js fornece um conjunto semelhante de UNIX (POSIX) API operações de arquivo padrão. Nó Importar arquivo Módulo do Sistema (fs) sintaxe é a seguinte:

var fs = require("fs")

Síncrona e assíncrona

Node.js sistema de arquivos (fs Module) métodos de módulos têm versões síncronas e assíncronas, como ler o conteúdo da função documento tem assíncrona fs.readFile () e sincronização fs.readFileSync ().

funções de método assíncrono último parâmetro para a função de retorno, o primeiro argumento para a função de retorno contém uma mensagem de erro (erro).

Eu recomendo é usar o método assíncrono, em comparação com método síncrono, assíncrono para maior desempenho, mais rápido, e não há nenhuma obstrução.

Exemplos

Criar arquivo de input.txt, como segue:

本教程官网地址:www.w3write.com
文件读取实例

Criar arquivo de file.js, como segue:

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("程序执行完毕。");

O código acima é executado da seguinte forma:

$ node file.js 
同步读取: 本教程官网地址:www.w3write.com
文件读取实例

程序执行完毕。
异步读取: 本教程官网地址:www.w3write.com
文件读取实例

Em seguida, vamos entender os métodos específicos no âmbito do sistema de arquivos Node.js.


Abra o arquivo

gramática

O que se segue é um arquivo aberto na sintaxe modo assíncrono:

fs.open(path, flags[, mode], callback)

parâmetros

Parâmetros como segue:

  • caminho - caminho para o arquivo.

  • bandeiras - arquivo de comportamento aberto.Os valores específicos descritos abaixo.

  • mode - definir o modo de arquivo (permissões), crie um arquivo permissões padrão 0666 (legível, gravável).

  • callback - função de callback tem dois parâmetros, tais como: retorno de chamada (err, fd).

bandeiras parâmetro podem ser os seguintes valores:

bandeira descrição
r Abra o arquivo em modo de leitura. Se o arquivo não existir arremesso.
r + Abra o arquivo em modo de leitura e escrita. Se o arquivo não existir arremesso.
rs Leia o arquivo de forma síncrona.
rs + De forma sincronizada para ler e gravar arquivos.
w Abra o arquivo em modo de gravação, se o arquivo não existir, ele é criado.
wx Semelhante 'w', mas se existe o caminho do arquivo, a falha de gravação do arquivo.
w + Abra o arquivo em modo de leitura e escrita, se o arquivo não existir, ele é criado.
wx + Semelhante 'w +', mas se existe o caminho do arquivo, o arquivo ler e escrever falhou.
um Abra o arquivo em modo de adição, se o arquivo não existir, ele é criado.
machado Semelhante a 'a', mas se existe o caminho do arquivo, o acréscimo arquivo falha.
a + Para ler o arquivo aberto no modo anexar, se o arquivo não existir, ele é criado.
ax + Similar "A +", mas se existe o caminho do arquivo, o arquivo é lido falhas adicionais.

Exemplos

Em seguida, criamos arquivo file.js e abre arquivo input.txt ler e escrever código da seguinte forma:

var fs = require("fs");

// 异步打开文件
console.log("准备打开文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
  console.log("文件打开成功!");     
});

O código acima é executado da seguinte forma:

$ node file.js 
准备打开文件!
文件打开成功!

Obtendo informações do arquivo

gramática

Os seguintes documentos para obter informações através da sintaxe de modo assíncrono:

fs.stat(path, callback)

parâmetros

Parâmetros como segue:

  • caminho - caminho do arquivo.

  • callback - função de callback tem dois parâmetros, tais como:(err, estatísticas), estatísticas são fs.Stats objeto.

Após fs.stat (path) de execução, uma instância da classe será devolvido à sua função estatísticas de retorno de chamada. Você pode determinar os atributos relevantes do arquivo por classe de estatísticas fornece um método. Por exemplo, para determinar se os arquivos:

var fs = require('fs');

fs.stat('/Users/liuht/code/itbilu/demo/fs.js', function (err, stats) {
    console.log(stats.isFile()); 		//true
})

métodos de classe estatísticas são:

caminho descrição
stats.isFile () Se o arquivo retorna verdadeiro, caso contrário, retorna false.
stats.isDirectory () Se o diretório retorna verdadeiro, caso contrário, retorna false.
stats.isBlockDevice () Se o dispositivo de bloco retorna verdadeiro, caso contrário, retorna false.
stats.isCharacterDevice () Se o dispositivo é um personagem retorna verdadeiro, caso contrário, retorna false.
stats.isSymbolicLink () Se é um soft link para retornar true, caso contrário, retorna false.
stats.isFIFO () Se o FIFO, retorna true, caso contrário, retorna false. FIFO é um tipo especial de pipeline de comando UNIX.
stats.isSocket () Se soquete retorna verdadeiro, caso contrário, retorna false.

Exemplos

Em seguida, criamos arquivo file.js, o código é a seguinte:

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());    
});

O código acima é executado da seguinte forma:

$ 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

Gravar no arquivo

gramática

O seguinte é escrito para o arquivo na sintaxe modo assíncrono:

fs.writeFile(filename, data[, options], callback)

Se o arquivo existir, o método grava o conteúdo irá substituir as antigas conteúdo do arquivo.

parâmetros

Parâmetros como segue:

  • caminho - caminho do arquivo.

  • dados - os dados a serem gravados em um arquivo, que pode ser String (String) ou tampão (stream) objeto.

  • Opções - Este parâmetro é um objeto que contém {codificação, modo, bandeira}.A codificação padrão é utf8, o modo de 0666, bandeira de 'w'

  • callback - função de retorno, a função de retorno contém apenas as mensagens de erro argumentos (err), retorna ao escrever falha.

Exemplos

Em seguida, criamos arquivo file.js, o código é a seguinte:

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());
   });
});

O código acima é executado da seguinte forma:

$ node file.js 
准备写入文件
数据写入成功!
--------我是分割线-------------
读取写入的数据!
异步读取文件数据: 我是通过写入的文件内容

Leia o arquivo

gramática

Aqui é o modo assíncrono para ler a sintaxe do arquivo:

fs.read(fd, buffer, offset, length, position, callback)

Este método usa um descritor de arquivo para ler o arquivo.

parâmetros

Parâmetros como segue:

  • fd - de volta através do método fs.open () de descritores de arquivos.

  • tampão - os dados são gravados para o buffer.

  • offset - buffer de gravação compensado está escrito.

  • length - O número de bytes lidos do arquivo.

  • posição - início do arquivo é lido, se a posição é nulo, é lida a partir da posição atual do ponteiro do arquivo.

  • callback - função de callback tem três argumentos errar, bytesRead, buffer, err mensagem de erro, bytesRead indica o número de bytes lidos, buffer do objeto buffer.

Exemplos

conteúdos input.txt do arquivo:

本教程官网地址:www.w3write.com

Em seguida, criamos arquivo file.js, o código é a seguinte:

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());
      }
   });
});

O código acima é executado da seguinte forma:

$ node file.js 
准备打开已存在的文件!
文件打开成功!
准备读取文件:
42  字节被读取
本教程官网地址:www.w3write.com

Feche o arquivo

gramática

A seguir é um arquivo fechado na sintaxe modo assíncrono:

fs.close(fd, callback)

Este método usa um descritor de arquivo para ler o arquivo.

parâmetros

Parâmetros como segue:

  • fd - de volta através do método fs.open () de descritores de arquivos.

  • callback - função de retorno não tem parâmetros.

Exemplos

conteúdos input.txt do arquivo:

本教程官网地址:www.w3write.com

Em seguida, criamos arquivo file.js, o código é a seguinte:

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("文件关闭成功");
      });
   });
});

O código acima é executado da seguinte forma:

$ node file.js 
准备打开文件!
文件打开成功!
准备读取文件!
本教程官网地址:www.w3write.com
文件关闭成功

arquivo Intercept

gramática

O seguinte é a sintaxe assíncrona intercepção modo de arquivo:

fs.ftruncate(fd, len, callback)

Este método usa um descritor de arquivo para ler o arquivo.

parâmetros

Parâmetros como segue:

  • fd - de volta através do método fs.open () de descritores de arquivos.

  • Len - o comprimento dos conteúdos do ficheiro interceptado.

  • callback - função de retorno não tem parâmetros.

Exemplos

conteúdos input.txt do arquivo:

site:www.w3write.com

Em seguida, criamos arquivo file.js, o código é a seguinte:

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("文件关闭成功!");
         });
      });
   });
});

O código acima é executado da seguinte forma:

$ node file.js 
准备打开文件!
文件打开成功!
截取10字节后的文件内容。
文件截取成功。
读取相同的文件
site:www.r
文件关闭成功

excluir arquivos

gramática

O seguinte é a sintaxe para excluir o arquivo:

fs.unlink(path, callback)

parâmetros

Parâmetros como segue:

  • caminho - caminho do arquivo.

  • callback - função de retorno não tem parâmetros.

Exemplos

conteúdos input.txt do arquivo:

site:www.w3write.com

Em seguida, criamos arquivo file.js, o código é a seguinte:

var fs = require("fs");

console.log("准备删除文件!");
fs.unlink('input.txt', function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("文件删除成功!");
});

O código acima é executado da seguinte forma:

$ node file.js 
准备删除文件!
文件删除成功!

Ver imagem input.txt novamente e encontrou não existe mais.


Crie um diretório

gramática

O seguinte é a sintaxe para criar o diretório:

fs.mkdir(path[, mode], callback)

parâmetros

Parâmetros como segue:

  • caminho - caminho do arquivo.

  • mode - definir as permissões de diretório, o padrão é 0777.

  • callback - função de retorno não tem parâmetros.

Exemplos

Em seguida, criamos arquivo file.js, o código é a seguinte:

var fs = require("fs");

console.log("创建目录 /tmp/test/");
fs.mkdir("/tmp/test/",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("目录创建成功。");
});

O código acima é executado da seguinte forma:

$ node file.js 
创建目录 /tmp/test/
目录创建成功。

Leia diretório

gramática

O seguinte é a sintaxe para ler o diretório:

fs.readdir(path, callback)

parâmetros

Parâmetros como segue:

  • caminho - caminho do arquivo.

  • callback - função de retorno, a função de callback tem dois argumentos errar, arquivos, mensagem de erro Err, arquivos para os arquivos de lista de matriz em um diretório.

Exemplos

Em seguida, criamos arquivo file.js, o código é a seguinte:

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 );
   });
});

O código acima é executado da seguinte forma:

$ node file.js 
查看 /tmp 目录
input.out
output.out
test
test.txt

Remover diretório

gramática

O seguinte é a sintaxe para excluir o diretório:

fs.rmdir(path, callback)

parâmetros

Parâmetros como segue:

  • caminho - caminho do arquivo.

  • callback - função de retorno não tem parâmetros.

Exemplos

Em seguida, criamos arquivo file.js, o código é a seguinte:

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 );
      });
   });
});

O código acima é executado da seguinte forma:

$ node file.js 
准备删除目录 /tmp/test
input.out
output.out
test
test.txt
读取 /tmp 目录
……

Referência método módulo de arquivo

O seguinte é uma lista de arquivos da mesma maneira Node.js módulos:

Não. Method & descrição
1 fs.rename (OldPath, Newpath, callback)
renomeação Asynchronous Callback () função. não tem parâmetros, mas podem jogar.
2 fs.ftruncate (fd, len, callback)
ftruncate Asynchronous Callback () função. não tem parâmetros, mas podem jogar.
3 fs.ftruncateSync (fd, len)
ftruncate sincronização ()
4 fs.truncate (caminho, len, callback)
truncar Asynchronous Callback () função. não tem parâmetros, mas podem jogar.
5 fs.truncateSync (caminho, len)
truncar sincronização ()
6 fs.chown (caminho, uid, gid, callback)
chown assíncrona a função de retorno de chamada (). não tem parâmetros, mas podem jogar.
7 fs.chownSync (caminho, uid, gid)
chown sincronização ()
8 fs.fchown (fd, uid, gid, callback)
fchown Asynchronous Callback () função. não tem parâmetros, mas podem jogar.
9 fs.fchownSync (fd, uid, gid)
fchown sincronização ()
10 fs.lchown (caminho, uid, gid, callback)
lchown Asynchronous Callback () função. não tem parâmetros, mas podem jogar.
11 fs.lchownSync (caminho, uid, gid)
lchown sincronização ()
12 fs.chmod (caminho, modo, callback)
chmod Asynchronous Callback () função. não tem parâmetros, mas podem jogar.
13 fs.chmodSync (path, mode)
chmod sincronização ().
14 fs.fchmod (fd, modo, callback)
fchmod Asynchronous Callback () função. não tem parâmetros, mas podem jogar.
15 fs.fchmodSync (fd, modo)
fchmod sincronização ().
16 fs.lchmod (caminho, modo, callback)
lchmod Asynchronous Callback () função. não tem parâmetros, mas podem jogar. Apenas disponível no Mac OS X.
17 fs.lchmodSync (path, mode)
lchmod sincronização ().
18 fs.stat (caminho, callback)
Stat assíncrona (). função de callback tem dois argumentos errar, estatísticas, estatísticas são fs.Stats objeto.
19 fs.lstat (caminho, callback)
lstat assíncrona (). função de callback tem dois argumentos errar, estatísticas, estatísticas são fs.Stats objeto.
20 fs.fstat (fd, callback)
fstat assíncrona (). função de callback tem dois argumentos errar, estatísticas, estatísticas são fs.Stats objeto.
21 fs.statSync (caminho)
status de sincronização (). Fs.Stats retornar uma instância de.
22 fs.lstatSync (caminho)
lstat sincronização (). Fs.Stats retornar uma instância de.
23 fs.fstatSync (FD)
fstat sincronização (). Fs.Stats retornar uma instância de.
24 fs.link (srcpath, dstpath, callback)
ligação assíncrona Callback () função. não tem parâmetros, mas podem jogar.
25 fs.linkSync (srcpath, dstpath)
ligação de sincronização ().
26 fs.symlink (srcpath, dstpath [, tipo ], callback)
symlink Asynchronous Callback () função. não tem parâmetros, mas podem jogar. parâmetro de tipo pode ser definido como 'dir', 'ficheiro', ou 'cruzamento' (default 'file').
27 fs.symlinkSync (srcpath, dstpath [, tipo ])
symlink sincronização ().
28 fs.readlink (caminho, callback)
readlink assíncrona (). função de callback tem dois argumentos errar, linkString.
29 fs.realpath (path [, esconderijo], callback)
realpath assíncrona (). função de callback tem dois argumentos errar, resolvedPath.
30 fs.realpathSync (path [, esconderijo])
realpath síncrona (). Retorna o caminho absoluto.
31 fs.unlink (caminho, callback)
unlink Asynchronous Callback () função. não tem parâmetros, mas podem jogar.
32 fs.unlinkSync (caminho)
unlink sincronização ().
33 fs.rmdir (caminho, callback)
rmdir Asynchronous Callback () função. não tem parâmetros, mas podem jogar.
34 fs.rmdirSync (caminho)
rmdir sincronização ().
35 fs.mkdir (path [, mode], callback)
mkdir S assíncrona a função de chamada de retorno (2). não tem parâmetros, mas podem jogar. o mode padrão é 0777.
36 fs.mkdirSync (path [, mode])
mkdir sincronização ().
37 fs.readdir (caminho, callback)
readdir assíncrona (3). Leia o conteúdo do diretório.
38 fs.readdirSync (caminho)
Sincronização de readdir (). Retorna uma matriz de lista de arquivos.
39 fs.close (fd, callback)
Asynchronous close (). Callback função não tem parâmetros, mas podem jogar.
40 fs.closeSync (FD)
Sincronização close ().
41 fs.open (caminho, bandeiras [, mode ], callback)
Asynchronous abrir o arquivo.
42 fs.openSync (caminho, bandeiras [, mode ])
versão síncrona de fs.open ().
43 fs.utimes (caminho, atime, mtime, callback)
44 fs.utimesSync (caminho, atime, mtime)
Alterar data e hora de arquivos, arquivo, caminho de arquivo especificado.
45 fs.futimes (fd, atime, mtime, callback)
46 fs.futimesSync (fd, atime, mtime)
timestamps de arquivo mudança, especificados pelo descritor de arquivo.
47 fs.fsync (fd, callback)
Asynchronous função de retorno de chamada fsync. Não tem parâmetros, mas podem jogar.
48 fs.fsyncSync (FD)
fsync sincronização.
49 fs.write (fd, buffer, offset, length [, cargo], callback)
O conteúdo do buffer de gravação para o arquivo especificado pelo descritor de arquivo.
50 fs.write (fd, os dados [, posição [, codificação]], callback)
Escreva para o conteúdo do arquivo de fd descritor de arquivo.
51 fs.writeSync (fd, buffer, offset, length [, cargo])
versão síncrona fs.write ().
52 fs.writeSync (fd, os dados [, posição [, codificação]])
versão síncrona fs.write ().
53 fs.read (fd, buffer, offset, comprimento, posição, callback)
Leia o conteúdo dos documentos sobre fd descritor de arquivo.
54 fs.readSync (fd, buffer, offset, comprimento, posição)
versão síncrona fs.read.
55 fs.readFile (filename [, options], callback)
Asynchronous ler o conteúdo do arquivo.
56 fs.readFileSync (filename [, options])
57 fs.writeFile (filename, dados [, opções ], callback)
gravação assíncrona para o conteúdo do arquivo.
58 fs.writeFileSync (filename, dados [, opções ])
versão síncrona fs.writeFile.
59 fs.appendFile (filename, dados [, opções ], callback)
Assíncronos conteúdo do arquivo adicional.
60 fs.appendFileSync (filename, dados [, opções ])
A versão síncrona de fs.appendFile.
61 fs.watchFile (filename [, options], ouvinte)
Modificar a exibição do arquivo.
62 fs.unwatchFile (filename [, ouvinte])
Parar de ver as mudanças de nome de arquivo.
63 fs.watch (filename [, options] [ , ouvinte])
Verificar as alterações de nome de arquivo, nome do arquivo pode ser um arquivo ou diretório. objeto de volta fs.FSWatcher.
64 fs.exists (caminho, callback)
Detectar existe um determinado caminho.
65 fs.existsSync (caminho)
fs.exists versão síncrona.
66 fs.access (path [, mode], callback)
Testes se o caminho especificado das permissões do usuário.
67 fs.accessSync (path [, mode])
versão síncrona fs.access.
68 fs.createReadStream (path [, options])
objeto ReadStream volta.
69 fs.createWriteStream (path [, options])
objeto WriteStream volta.
70 fs.symlink (srcpath, dstpath [, tipo ], callback)
symlink Asynchronous Callback () função. não tem parâmetros, mas podem jogar.

Para mais detalhes, veja o Módulo website Arquivo oficial Descrição: Arquivo do Sistema .

sistema de arquivos Node.js
10/30