1 fs.stat 检测是文件还是目录

stats.isFile()和stats.isDirectory()返回布尔值

1
2
3
4
5
6
7
8
9
fs.stat('hello.js', (error, stats) =>{
if(error){
console.log(error)
} else {
console.log(stats)
console.log(`文件:${stats.isFile()}`)
console.log(`目录:${stats.isDirectory()}`)
}
})

2 fs.mkdir 创建目录

path——–>将创建的目录路径
mode——–>目录权限(读写权限),默认777
callback—->回调,传递异常参数err

1
2
3
4
5
6
7
fs.mkdir('logs', (error) => {
if(error){
console.log(error)
} else {
console.log('成功创建目录:logs')
}
})

3 fs.writeFile 创建写入文件

filename—(String)—文件名称
data—(String | Buffer)—将要写入的内容,可以使字符串 或 buffer数据
options —(Object)—option数组对象,包含:
· encoding—(string)—可选值,默认 ‘utf8′,当data使buffer时,该值应该为 ignored
· mode—(Number)—文件读写权限,默认值 438
· flag—(String)—默认值 ‘w’
callback—{Function}—回调,传递一个异常参数err

1
2
3
4
5
6
7
fs.writeFile('logs/hello.log', '您好 ~ \n', (error) => {
if(error) {
console.log(error)
} else {
console.log('成功写入文件')
}
})

4 fs.appendFile 追加文件

在原文档后加入文本

不存在文件则创建文件

1
2
3
4
5
6
7
fs.appendFile('logs/hello.log', 'hello ~ \n', (error) => {
if(error) {
console.log(error)
} else {
console.log('成功写入文件')
}
})

5 fs.readFile 读取文件

1
2
3
4
5
6
7
fs.readFile('logs/hello.log', 'utf8', (error, data) =>{
if (error) {
console.log(error)
} else {
console.log(data)
}
})

6 fs.readdir 读取目录

1
2
3
4
5
6
7
fs.readdir('logs', (error, files) => {
if (error) {
console.log(error)
} else {
console.log(files)
}
})

7 fs.rename 重命名

1
2
3
4
5
6
7
fs.rename('js/hello.log', 'js/greeting.log', (error) =>{
if (error) {
console.log(error)
} else {
console.log('重命名成功')
}
})

8 fs.rmdir 删除目录

1
2
3
4
5
6
7
fs.rmdir('logs', (error) =>{
if (error) {
console.log(error)
} else {
console.log('成功的删除了目录:logs')
}
})
1
2
3
4
5
6
7
fs.unlink(`logs/${file}`, (error) => {
if (error) {
console.log(error)
} else {
console.log(`成功的删除了文件: ${file}`)
}
})

10 fs.createReadStream 从文件流中读取数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const fs = require('fs')
var fileReadStream = fs.createReadStream('data.json')
let count=0;
var str='';
fileReadStream.on('data', (chunk) => {
console.log(`${ ++count } 接收到:${chunk.length}`);
str+=chunk
})
fileReadStream.on('end', () => {
console.log('--- 结束 ---');
console.log(count);
console.log(str);
})
fileReadStream.on('error', (error) => {
console.log(error)
})

11 fs.createWriteStream 写入文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var fs = require("fs");
var data = '我是从数据库获取的数据,我要保存起来';
// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');
// 使用 utf8 编码写入数据
writerStream.write(data,'UTF8');
// 标记文件末尾
writerStream.end();
// 处理流事件 --> finish 事件
writerStream.on('finish', function() { /*finish - 所有数据已被写入到底层系统时触发。*/
console.log("写入完成。");
});
writerStream.on('error', function(err){
console.log(err.stack);
});
console.log("程序执行完毕");

12 管道流

1
2
3
4
5
6
7
8
9
var fs = require("fs");
// 创建一个可读流
var readerStream = fs.createReadStream('input.txt');
// 创建一个可写流
var writerStream = fs.createWriteStream('output.txt');
// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);
console.log("程序执行完毕");