1. ファイル書き込み操作
writeFile はデフォルトで w モードでファイルを直接開くため、ファイルが存在する場合、このメソッドによって書き込まれたコンテンツは古いファイルのコンテンツを上書きします。
文法:
writeFile(ファイル, データ[, オプション], コールバック) | 非同期 |
writeFileSync(ファイル、データ) | 同期する |
パラメータ:
ファイル | ファイル名 |
データ | ファイルに書き込むデータ |
オプション | パラメータは {encoding, mode, flag} を含むオブジェクトです。デフォルトのエンコーディングは utf8、モードは 0666、フラグは 'w' です。 |
折り返し電話 | コールバック関数、コールバック関数はエラー メッセージ パラメータ (err) のみを含み、書き込みが失敗したときに戻ります。 |
コード:
// 1、导入fs模块
const fs = require('fs')
// 2、异步写入文件
fs.writeFile('./xxx.txt', '三人行, 则必有我师焉', err => {
// err写入失败: 错误对象 写入成功: null
if(err) {
console.log('写入失败')
return
}
console.log('写入成功')
})
// 2、同步写入文件
fs.writeFileSync('./data.txt', 'text')
2. 追記
方法1、
文法:
appendFile(ファイル、データ、オプション、コールバック) | 同期する |
appendFileSync(ファイル、データ) | 非同期 |
パラメータ:
ファイル | 追加ファイル |
データ | 追加コンテンツ |
オプション | パラメータは {encoding, mode, flag} を含むオブジェクトです。デフォルトのエンコーディングは utf8、モードは 0666、フラグは 'w' です。 |
折り返し電話 | 操作後のコールバック |
コード:
const fs = require('fs')
// 1、异步追加
fs.appendFile('./xxx.txt', '你说嘴巴嘟嘟,还是狗吧狗狗', err => {
// 判断
if(err) {
console.log('写入失败~~')
return
}
console.log('写入成功~~')
})
// 同步追加
fs.appendFileSync('./xxx.txt', '你说嘴巴嘟嘟,还是狗吧狗狗')
方法 2、
コード:
const fs = require('fs')
fs.writeFile('./xxx.txt', '你说嘴巴嘟嘟,还是狗吧狗狗', {flag: 'a'}, err => {
// 判断
if(err) {
console.log('写入失败~~')
return
}
console.log('写入成功~~')
})
3. ファイルストリーム書き込み
コード:
// 1、导入fs
const fs = require('fs')
// 2、创建写入流对象
const ws = fs.createWriteStream('./观书后感.txt')
// 3、write
ws.write('半亩方塘一鉴开\r\n')
ws.write('天光云影共徘徊\r\n')
ws.write('问渠那得清如许\r\n')
ws.write('为有源头活水来\r\n')
// 关闭通道
ws.close();
4. ファイル読み込み
方法 | 例証する |
readFile | 非同期読み取り |
readFileSync | 同期読み取り |
createReadStream | ストリーミング読み取り |
コード:
// 1. fs模块
const fs = require('fs')
// 2. 异步读取
fs.readFile('./观书后感.txt', (err, data) => {
if(err) {
console.log('读取失败~~')
return
}
console.log('读取成功~~', data.toString())
})
// 3. 同步读取
let data = fs.readFileSync('./观书后感.txt');
console.log(data.toString())
// 4. 流式读取
const rs = fs.createReadStream('./data.txt') // 创建读取流对象
rs.on('data', res => { // 绑定data事件
console.log(res)
})
rs.on('end', () => {
console.log('读取完成')
})
効果:
5. ファイルのコピー
コード:
// 导入fs模块
const fs = require('fs')
// 方式一
// 1、读取文件
let data = fs.readFileSync('./data.txt')
// 2、写入文件
fs.writeFileSync('./data2.txt', data);
//方式二 流式操作(推荐使用)
// 1、创建读取流对象
const rs = fs.createReadStream('./data.txt')
// 2、创建写入流对象
const ws = fs.createWriteStream('./data3.txt')
// 3. 绑定data事件
rs.on('data', chunk => {
ws.write(chunk)
})
6. ファイルの移動と名前の変更
文法:
rename(oldPath, newPath, コールバック) | 同期する |
renameSync(oldPath, newPath) | 非同期 |
パラメータ:
古いパス | ファイルの現在のパス |
新しいパス | 新しいファイルへのパス |
折り返し電話 | 操作後のコールバック |
コード:
const fs = require('fs')
// 修改名字
fs.rename('./data.txt', './new_data.txt', err => {
if(err) {
console.log('操作失败~~')
return
}
console.log('操作成功')
})
// 移动
fs.rename('./data2.txt', './data/new_data.txt', err => {
if(err) {
console.log('操作失败~~')
return
}
console.log('操作成功')
})
7. ファイルの削除
文法:
unlink(パス、コールバック) | 非同期 |
unlinkSync | 同期する |
rm(パス、コールバック) | バージョン 14.4 |
パラメータ:
道 | ファイルパス |
折り返し電話 | 操作後のコールバック |
コード:
const fs = require('fs')
fs.unlink('data3.txt', err => {
if(err) {
console.log('删除失败')
return
}
console.log('删除成功')
})
8. フォルダ操作
1.作成する
文法:
mkdir(パス、オプション、コールバック) | 非同期 |
mkdirSync(パス、オプション) | 同期する |
パラメータ:
道 | ファイルパス |
オプション | オプション構成 |
折り返し電話 | 操作後のコールバック |
コード:
const fs = require('fs')
// 1、创建单个文件夹
fs.mkdir('./html', err => {
if(err) {
console.log('创建失败~~')
return
}
console.log("创建成功~~")
})
// 2、创建递归文件夹
fs.mkdir('./a/b/c', {recursive: true}, err => { // 需要添加{recursive: true} 参数
if(err) {
console.log('创建失败~~')
return
}
console.log("创建成功~~")
})
2.読む
文法:
readdir(パス、コールバック) | フォルダを読む |
パラメータ:
道 | フォルダを読む |
折り返し電話 | 操作後のコールバック |
コード:
const fs = require('fs')
fs.readdir('./data', (err, data) => {
if(err) {
console.log('读取失败')
return
}
console.log(data);
})
3. 削除
文法:
rmdir(パス、オプション、コールバック) | 非推奨 |
rm(パス、オプション、コールバック) | 推奨用途 |
パラメータ:
道 | 道 |
オプション | その他のパラメータ |
折り返し電話 | 操作後のコールバック |
.0
コード:
const fs = require('fs')
// 删除
fs.rmdir('./html', err => {
if(err) {
console.log("删除失败")
return
}
console.log("删除成功")
})
// 递归删除 删除a/b/c
fs.rmdir('./a', {recursive: true}, err => {
if(err) {
console.log("删除失败")
return
}
console.log("删除成功")
})
// 推荐使用
fs.rm('./a', {recursive: true}, err => {
if(err) {
console.log("删除失败")
return
}
console.log("删除成功")
})