📅  最后修改于: 2023-12-03 14:57:10.455000             🧑  作者: Mango
在Javascript中,可以使用Node.js内置的fs
模块来操作文件系统。想要打开一个文件需要使用fs.readFileSync()
或fs.readFile()
方法。此外,还可以使用fs.createReadStream()
和fs.createWriteStream()
fs.readFileSync()
该方法通过同步的方式按给定的文件路径从文件系统中读取文件内容。通过以下代码可以打开一个文件并将其存储到缓冲区中:
const fs = require('fs');
try {
const data = fs.readFileSync('/path/to/file', 'utf8');
console.log(data);
} catch (error) {
console.error(error);
}
参数1为文件路径,参数2为字符编码类型。
该方法会抛出异常,因此需要通过try-catch
语句来捕获它。
fs.readFile()
该方法是异步的,可以通过回调函数获取到文件内容。通过以下代码打开一个文件:
const fs = require('fs');
fs.readFile('/path/to/file', 'utf8', function (error, data) {
if (error) {
console.error(error);
} else {
console.log(data);
}
});
参数1为文件路径,参数2为字符编码类型。回调函数中第1个参数为错误(如果存在),第2个参数为文件内容(如果成功)。注意,使用该方法时要注意回调嵌套地狱问题。
fs.createReadStream()
当需要读取大型文件时,可以使用该方法。该方法会创建一个可读流来读取文件,可以一块一块地读取文件,因此不会将大文件一次性载入内存中。
以下代码展示了如何使用该方法:
const fs = require('fs');
const readStream = fs.createReadStream('/path/to/file', 'utf8');
readStream.on('data', function (data) {
console.log(data);
});
readStream.on('error', function (error) {
console.error(error);
});
readStream.on('close', function () {
console.log('文件被关闭了。');
});
参数1为文件路径,参数2为字符编码类型。该方法会返回一个可读流对象。并且可以通过.on()
方法监听事件(如:data
,error
,close
等)。
fs.createWriteStream()
该方法会创建一个可写流,并将数据写入目标位置的文件。可以使用以下代码来写入文件:
const fs = require('fs');
const writeStream = fs.createWriteStream('/path/to/file', 'utf8');
writeStream.write('Hello World!\n', 'utf8');
writeStream.end(() => {
console.log('文件写入完成。');
});
以上代码会将字符串写入指定路径的文件。可以通过参数2来指定字符编码类型。
write()
方法写入字符串,而end()
方法用于标记流已到达末端。
最后,使用.on('finish', ...)
回调获取写入完成时的处理。