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,
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")
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.
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.
O que se segue é um arquivo aberto na sintaxe modo assíncrono:
fs.open(path, flags[, mode], callback)
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. |
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 准备打开文件! 文件打开成功!
Os seguintes documentos para obter informações através da sintaxe de modo assíncrono:
fs.stat(path, callback)
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. |
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
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 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.
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 准备写入文件 数据写入成功! --------我是分割线------------- 读取写入的数据! 异步读取文件数据: 我是通过写入的文件内容
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 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.
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
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 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.
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 文件关闭成功
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 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.
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 文件关闭成功
O seguinte é a sintaxe para excluir o arquivo:
fs.unlink(path, callback)
Parâmetros como segue:
caminho - caminho do arquivo.
callback - função de retorno não tem parâmetros.
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.
O seguinte é a sintaxe para criar o diretório:
fs.mkdir(path[, mode], callback)
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.
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/ 目录创建成功。
O seguinte é a sintaxe para ler o diretório:
fs.readdir(path, callback)
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.
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
O seguinte é a sintaxe para excluir o diretório:
fs.rmdir(path, callback)
Parâmetros como segue:
caminho - caminho do arquivo.
callback - função de retorno não tem parâmetros.
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 目录 ……
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 .