ファイルシステム
ノードは、標準のPOSIX関数と単純なパッケージングを使用してファイルI / Oを実装します
ファイルシステムモジュール(fs)構文のインポート:
var fs = require("fs")
1.非同期、同期
-
Node.jsファイルシステム(fsモジュール)モジュールのメソッドには
异步和同步
バージョンがあります -
非同期方式は
前后端处理不需要相互等待
-
回调
:イベントがトリガーされた後に実行します。これは非同期の同等の機能です。 -
非同期メソッド関数の最後のパラメーターはコールバック関数であり、コールバック関数の最初のパラメーターにはエラーメッセージ(エラー)が含まれています。
-
非同期方式を使用することをお勧めします。非同期方式は、同期方式と比較して、パフォーマンスが高く、速度が速く、ブロッキングがありません。
2.ファイルモジュールの一般的に使用される機能:
- ファイルを読む:
- 非同期でファイルを読み取る(非ブロッキングモード)
readFile()
fs.readFile(filename,function(err,buffer)){
if(err) throw err;
process(buffer)
}
//参数解释:
//filename->文件路径
//err->存放文件读取错误时的错误信息
//buffer->存放读出的信息
- ファイルを同期的に読み取り、文字列を返します(ブロッキングモード)
readFileSync()
var text=fs.readFileSync(filename,'utf8');
- ファイルを開く:
open()
fs.open(path,flags[,mode],callback)
//参数解释:
//path -文件名,包括路径
//flags -打开方式
//mode -设置文件模式(权限),文件创建默认权限为 0666(可读,可写)。
//callback -回调函数,带有两个参数如:callback(err, fd)。
- ファイル情報を取得します。
stat()
fs.stat(path, callback)
//参数说明:
// path - 文件路径。
// callback - 回调函数,带有两个参数如:(err, stats), stats 是 fs.Stats 对象。
- ファイルを書き込む
- 非同期(ファイルがすでに存在する場合は上書きされます)
fs.writeFile(file, data[, options], callback)
//参数说明:
// file - 文件名或文件描述符。
// data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(缓冲) 对象。
// options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 'w'
// callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。
- 同期する
fs.writeFileSync(filename,data[,options])
- ファイルの読み取り(バイナリモード、バイト単位での読み取り)
fs.read(fd, buffer, offset, length, position, callback)
//参数说明:
//fd - 通过 fs.open() 方法返回的文件描述符。
// buffer - 数据写入的缓冲区。
// offset - 缓冲区写入的写入偏移量。
// length - 要从文件中读取的字节数。
// position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。
// callback - 回调函数,有三个参数err, bytesRead, buffer,err 为错误信息, bytesRead 表示读取的字节数,buffer 为缓冲区对象。
- ファイルを閉じる
fs.close(fd, callback)
//参数说明:
// fd - 通过 fs.open() 方法返回的文件描述符。
// callback - 回调函数,没有参数。
- ファイルをコピーする
fs.copyFile(originalpath,targetpath,callback)
//originalpath -源文件
//targetpath -目标文件
- コンテンツを追加します(ファイルの最後にコンテンツを追加します。ファイルが存在しない場合は、ファイルを作成します)
fs.appendFile(filename,content,callback)
- ファイルを削除する
fs.unlink(path, callback)
- ファイルの名前変更
fs.rename(oldPath, newPath, callback)
//异步 rename().回调函数没有参数,但可能抛出异常。
- ディレクトリを作成する
fs.mkdir(path[, options], callback)
//参数说明:
// path - 文件路径。
// options 参数可以是:recursive - 是否以递归的方式创建目录,默认为 false;mode - 设置目录权限,默认为 0777。
// callback - 回调函数,没有参数。
- ディレクトリの読み取り
fs.readdir(path, callback)
//callback - 回调函数,回调函数带有两个参数err, files,err 为错误信息,files 为 目录下的文件数组列表。
- ディレクトリを削除する
fs.rmdir(path, callback)
//callback回调函数,没有参数