Nodejs中的文件读写
在Nodejs中,可以通过内置的fs
模块来进行文件的读写操作。本文将介绍如何使用Nodejs读写文件。
一、文件读取
使用fs.readFile()
方法来读取文件。该方法有两个参数:
path
:文件路径(必选)。
options
:该参数是一个对象,用于指定读取的文件的编码(可选)。
下面的代码演示了如何异步地读取文件:
const fs = require('fs');
fs.readFile('/path/to/file', { encoding: 'utf8' }, function(err, data) {
if (err) throw err;
console.log(data);
});
上面的代码中,/path/to/file
表示文件的路径,{ encoding: 'utf8' }
指定了文件的编码方式为utf8
,第三个参数是一个回调函数,当读取文件完成后会调用该回调函数。
如果文件是二进制数据而不是文本数据,则可以不指定编码方式。
二、文件写入
使用fs.writeFile()
方法来写入文件。该方法有三个参数:
path
:文件路径(必选)。
data
:要写入的数据(必选)。
options
:该参数是一个对象,用于指定写入的文件的编码和写入方式(可选)。
下面的代码演示了如何写入文件:
const fs = require('fs');
fs.writeFile('/path/to/file', 'Hello, world!', function(err) {
if (err) throw err;
console.log('File saved!');
});
上面的代码中,/path/to/file
表示文件的路径,'Hello, world!'
是要写入的数据,第三个参数是一个回调函数,当写入文件完成后会调用该回调函数。
可以使用options
参数来指定写入文件的编码和写入方式。示例代码如下:
const fs = require('fs');
fs.writeFile('/path/to/file', 'Hello, world!', { encoding: 'utf8', flag: 'a' }, function(err) {
if (err) throw err;
console.log('File saved!');
});
上面的代码指定了编码方式为utf8
,写入方式为追加(flag: 'a'
)。
三、文件复制
使用fs.createReadStream()
和fs.createWriteStream()
方法来复制文件。这两个方法分别是用来创建读取流(ReadStream
)和写入流(WriteStream
)的。
下面的代码演示了如何复制文件:
const fs = require('fs');
const readStream = fs.createReadStream('/path/to/source');
const writeStream = fs.createWriteStream('/path/to/destination');
readStream.pipe(writeStream);
writeStream.on('finish', function() {
console.log('File copied!');
});
上面的代码创建了一个读取流(readStream
)和一个写入流(writeStream
)。然后使用管道(pipe
)把读取流中的数据写入到写入流中。
当写入流完成写入后,会触发一个finish
事件,使用writeStream.on('finish', callback)
来监听这个事件。
四、其他文件操作
Nodejs提供了很多文件的相关方法,这里只是简单的介绍几个。
1. 获取文件信息
使用fs.stat()
方法来获取文件的信息。该方法有两个参数:
path
:文件路径(必选)。
options
:该参数是一个对象,用于指定获取信息的方式(可选)。
下面的代码演示了获取文件的信息:
const fs = require('fs');
fs.stat('/path/to/file', function(err, stats) {
if (err) throw err;
console.log(stats);
});
上面的代码中,stats
是一个对象,包含了文件的详细信息,如文件大小、创建时间等。
2. 删除文件
使用fs.unlink()
方法来删除文件。该方法有一个参数:
path
:文件路径(必选)。
下面的代码演示了删除文件:
const fs = require('fs');
fs.unlink('/path/to/file', function(err) {
if (err) throw err;
console.log('File deleted!');
});
上面的代码中,/path/to/file
表示要删除的文件路径。
3. 创建目录
使用fs.mkdir()
方法来创建目录。该方法有两个参数:
path
:目录路径(必选)。
options
:该参数是一个对象,用于指定创建目录的方式(可选)。
下面的代码演示了创建目录:
const fs = require('fs');
fs.mkdir('/path/to/directory', function(err) {
if (err) throw err;
console.log('Directory created!');
});
上面的代码中,/path/to/directory
表示要创建的目录路径。
4. 读取目录
使用fs.readdir()
方法来读取目录。该方法有两个参数:
path
:目录路径(必选)。
options
:该参数是一个对象,用于指定读取目录的选项(可选)。
下面的代码演示了读取目录:
const fs = require('fs');
fs.readdir('/path/to/directory', function(err, files) {
if (err) throw err;
console.log(files);
});
上面的代码中,/path/to/directory
表示要读取的目录路径。该方法返回一个数组,包含了目录中的所有文件名。
总结
本文介绍了Nodejs中文件的读写操作,包括文件读取、文件写入、文件复制、获取文件信息、删除文件、创建目录、读取目录等操作。在实际开发中,文件操作是不可避免的,因此掌握这些操作是非常重要的。