Node.js中的fs.open方法使用说明
简介
fs.open()
方法用于异步地打开文件。 与 fs.openSync()
方法类似,但 fs.open()
方法不会立即将文件打开。 而是返回文件描述符。
这个方法可以被用来打开新的文件,也可以被用来修改一个已打开的文件。
语法
fs.open(path[, flags[, mode]], callback)
参数说明:
path
:字符串,文件名。可以使用相对路径(相对于当前工作目录)或绝对路径来指定文件路径。flags
:字符串,打开文件的方式和权限。默认为'r'
。可选参数是:
Flag | 说 明 |
---|---|
'r' |
以读取模式打开文件,如果文件不存在则发生异常。 |
'r+' |
以读写模式打开文件,如果文件不存在则发生异常。 |
'w' |
以写入模式打开文件,文件不存在则创建文件。 |
'w+' |
以读写模式打开文件,文件不存在则创建文件。 |
'a' |
以追加模式打开文件,文件不存在则创建文件。 |
'a+' |
以读取和追加模式打开文件,文件不存在则创建文件。 |
- mode :数字,指定文件的权限,默认为 0o666 ,表示可读写,可执行。 |
|
- callback :回调函数,接受三个参数,形式如下: |
function(err, fd) {...}
其中,err
为可能的异常错误信息,如果没有则为 null
。fd
为打开文件的文件描述符。
返回值
fs.open()
方法返回一个整数文件描述符。
示例
例子1
打开一个文件,如果文件不存在则创建一个新文件。
const fs = require('fs');
fs.open('newfile.txt', 'w', (err, fd) => {
if (err) throw err;
console.log('文件已经打开,文件描述符为:', fd);
});
上面的代码打印出文件描述符后不会再有额外的输出。可以确认文件已经打开。
例子2
打开一个已经存在的文件,写入一些内容,关闭文件并读取已写入的内容。
const fs = require('fs');
fs.open('oldfile.txt', 'r+', (err, fd) => {
if (err) throw err;
console.log('文件已经打开,文件描述符为:', fd);
const buf = Buffer.alloc(1024);
const writeData = '这里是写入的文字。';
// 写入数据
fs.write(fd, writeData, (writeErr, written, string) => {
if (writeErr) throw writeErr;
console.log(`${written} 字节被写入`);
// 重新读取数据并打印
fs.read(fd, buf, 0, buf.length, 0, (readErr, bytesRead, buffer) => {
if (readErr) throw readErr;
console.log(`${bytesRead} 字节被读取,内容是:` + buf.slice(0, bytesRead).toString());
// 关闭文件
fs.close(fd, (closeErr) => {
if (closeErr) throw closeErr;
console.log('文件已关闭');
});
});
});
});
上面的代码先打开名为 oldfile.txt
的文件,然后写入一段文字,再重新读取一次文件,打印出读取到的内容,并最后关闭文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js中的fs.open方法使用说明 - Python技术站