node文件的读写操作

1. 读取文件

在Node.js中,使用fs模块可以进行文件操作。其中,读取文件的函数是fs.readFile()。这个函数有三个参数:文件路径、编码格式和回调函数。

下面是一个读取文本文件的例子:

const fs = require('fs');

fs.readFile('/path/to/file.txt', 'utf8', (err, data) => {

if (err) throw err;

console.log(data);

});

首先,我们要用require()函数引入fs模块。然后,使用fs.readFile()函数读取文件,将读取到的内容输出到控制台上。

需要注意的是,回调函数中的err变量表示读取文件是否出错,如果出错则不为空。data变量表示读取到的文件内容。

1.1 读取二进制文件

如果是读取二进制文件,那么需要省略第二个参数,如下:

const fs = require('fs');

fs.readFile('/path/to/image.jpg', (err, data) => {

if (err) throw err;

console.log(data);

});

这里 readFile() 函数不传入第二个参数,读取到的 data 变量类型是一个Buffer,可以使用该Buffer对象进行上传或者是写入其他文件等操作。

2. 写入文件

Node.js使用fs.writeFile()函数来写入文件,该函数需要三个参数:文件路径、内容和回调函数。

下面是一个将内容写入文件的例子:

const fs = require('fs');

fs.writeFile('/path/to/file.txt', 'Hello Node.js', (err) => {

if (err) throw err;

console.log('The file has been saved!');

});

这里,我们将“Hello Node.js”写入文件中。当文件写入完成时,控制台将输出“The file has been saved!”。

需要注意的是,如果文件路径不存在或无法打开,则这个函数会抛出异常。如果写入成功,则不会返回任何东西。

2.1 写入CSV文件

在写入CSV文件时,我们通常需要将数据按照特定的格式写入到文件中。下面是一个写入CSV文件的例子:

const fs = require('fs');

const data = [

['name', 'age', 'gender'],

['Alice', '20', 'female'],

['Bob', '25', 'male'],

['Charlie', '30', 'male']

];

const csv = data.map(row => row.join(',')).join('\n');

fs.writeFile('/path/to/file.csv', csv, (err) => {

if (err) throw err;

console.log('The CSV file has been saved!');

});

这里我们定义了一个包含四行数据的二维数组 data,将它转换成了逗号分隔的 CSV 字符串,然后使用 fs.writeFile() 保存到文件中。

3. 追加内容到文件

Node.js使用fs.appendFile()函数将内容附加到文件中。它的参数与fs.writeFile()函数相同。

下面是一个将内容追加到文件中的例子:

const fs = require('fs');

fs.appendFile('/path/to/file.txt', 'This is some new text.', (err) => {

if (err) throw err;

console.log('The new content was appended to the file!');

});

需要注意的是,如果文件不存在,它将由于指定的文件夹不存在而引发错误。

3.1 追加JSON格式数据到文件

在将 JSON 数据追加到文件中时,我们需要将数据字符串化并添加在已有的 JSON 数据后面。下面是一个追加 JSON 数据到文件中的例子:

const fs = require('fs');

const data = {

name: 'Alice',

age: 20,

gender: 'female'

};

fs.readFile('/path/to/data.json', (err, fileData) => {

if (err) throw err;

const dataArr = JSON.parse(fileData);

dataArr.push(data);

fs.writeFile('/path/to/data.json', JSON.stringify(dataArr), (err) => {

if (err) throw err;

console.log('The JSON data has been appended to the file!');

});

});

这里,我们首先读取了一个包含JSON格式数据的文件。然后,将新数据添加到JSON数据后面,并使用fs.writeFile()将数据字符串写入文件。

需要注意的是,我们要使用JSON.parse()将读取到的文件解析为JSON对象。在追加新数据之前,我们需要确保读取到的是一个JSON数组(即JSON.parse()解析后的结果是一个数组)。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。