node 对文件的操作

本文详细介绍了Node.js中对文件的各种操作,包括打开、读取、写入、关闭、删除文件,创建、查看、删除目录,以及文件的截取、重命名、权限修改等,覆盖了文件系统的常用功能。
摘要由CSDN通过智能技术生成

1 打开文件

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

参数:

path <string> | <Buffer> | <URL>

flags <string> | <number> 参阅支持的文件系统标志

mode <integer> 默认值: 0o666(可读写)。

callback <Function>

    err <Error>

    fd <integer>

//异步打开文件
fs.open('./tmp/input.txt', 'r+', function (err, fd) {
    if (err) throw err;
    console.log('文件打开成功');
});
//同步打开文件
const fd = fs.openSync('./tmp/input.txt', 'r+');
console.log(fd);

2 读取文件

fs.readFile(path[, options], callback)

参数:

path <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符。

options <Object> | <string>

    encoding <string> | <null> 默认值: null

    flag <string> 参阅支持的文件系统标志默认值: 'r'

callback <Function>

    err <Error>

    data <string> | <Buffer>

回调会传入两个参数 (err, data),其中 data 是文件的内容。

如果没有指定 encoding,则返回原始的 buffer。

如果 options 是字符串,则它指定字符编码:

// 异步读取文件
fs.readFile('./tmp/input.txt',{encoding:'utf8'},  (err, data) => {
    if (err) throw err;
    console.log(data);
})
//同步读取文件
const data = fs.readFileSync('./tmp/input.txt',{encoding:'utf8'});
console.log(data);

3 读取指定字节数的缓存数据

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

参数:

fd <integer>

buffer <Buffer> | <TypedArray> | <DataView>

offset <integer>

length <integer>

position <integer>

callback <Function>

    err <Error>

    bytesRead <integer>

    buffer <Buffer>

从 fd 指定的文件中读取数据。

buffer 是数据将写入的缓冲区。

offset 是 buffer 中开始写入的偏移量。

length 是一个整数,指定要读取的字节数。

position 参数指定从文件中开始读取的位置。 如果 position 为 null,则从当前文件位置读取数据,并更新文件位置。 如果 position 是整数,则文件位置将保持不变。

回调有三个参数 (err, bytesRead, buffer)

//读取指定字节数的缓存数据
let buf = Buffer.alloc(1024);
fs.open('./tmp/input2.txt', 'r+',  (err, fd)=> {
    if (err) throw err;
    fs.read(fd, buf, 0, buf.length, 0,  (err, bytesRead, buffer) => {
        if (err) throw err;
        console.log(`${bytesRead}字节被读取`);
        if (bytesRead > 0) {
            console.log(buf.slice(0, bytesRead).toString());
        }
    })
});

4 获取文件信息

fs.fstat(fd[, options], callback)

//获取文件信息
fs.stat('./tmp/input.txt',  (err, stats) => {
    if (err) throw err;
    //提供有关文件的信息
    console.log(stats);
    /*
    * dev: 1579443008,  //包含该文件的设备的数字标识符。
      mode: 33206,      //描述文件类型和模式的位字段
      nlink: 1,         //文件存在的硬
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值