读取:
readFileSync是同步的
如果你希望将文件内容读取为字符串,可以使用 encoding 参数设置为 'utf8'。例如,假设你想读取一个文本文件并截取前100个字符:
javascript
const fs = require('fs');
try {
// 同步读取文件内容为字符串
const data = fs.readFileSync('example.txt', 'utf8');
// 截取前100个字符
const truncatedData = data.substring(0, 100);
console.log(truncatedData);
} catch (err) {
console.error(err);
}
如果你希望以二进制形式读取文件(例如,处理非文本文件如图片或视频),可以先读取为Buffer:
javascript
const fs = require('fs');
try {
// 同步读取文件内容为Buffer
const buffer = fs.readFileSync('example.bin');
// 截取前100个字节(注意这里是字节,不是字符)
const truncatedBuffer = buffer.slice(0, 100);
console.log(truncatedBuffer);
} catch (err) {
console.error(err);
}
createReadStream是异步的
javascript
const fs = require('fs');
const stream = fs.createReadStream('path/to/your/file.txt', 'utf8');
stream.on('data', (chunk) => {
console.log(chunk);
});
stream.on('end', () => {
console.log('Finished reading the file.');
});
stream.on('error', (err) => {
console.error('Error reading the file:', err);
});
创建:
后面再写