js实现io
使用 Node.js 实现文件 I/O
Node.js 提供了内置的 fs 模块(文件系统模块),支持同步和异步的文件操作。以下是常见的文件 I/O 操作方法:
异步读取文件
const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
同步读取文件
const fs = require('fs');
try {
const data = fs.readFileSync('example.txt', 'utf8');
console.log(data);
} catch (err) {
console.error(err);
}
异步写入文件
const fs = require('fs');
fs.writeFile('example.txt', 'Hello World', 'utf8', (err) => {
if (err) throw err;
console.log('File written successfully');
});
同步写入文件
const fs = require('fs');
try {
fs.writeFileSync('example.txt', 'Hello World', 'utf8');
console.log('File written successfully');
} catch (err) {
console.error(err);
}
使用流处理大文件
对于大文件,推荐使用流(Stream)来避免内存问题:
读取流

const fs = require('fs');
const readStream = fs.createReadStream('largefile.txt', 'utf8');
readStream.on('data', (chunk) => {
console.log(chunk);
});
readStream.on('end', () => {
console.log('File reading completed');
});
写入流
const fs = require('fs');
const writeStream = fs.createWriteStream('output.txt');
writeStream.write('Hello ');
writeStream.write('World');
writeStream.end();
文件系统高级操作
检查文件是否存在
const fs = require('fs');
fs.access('example.txt', fs.constants.F_OK, (err) => {
console.log(err ? 'File does not exist' : 'File exists');
});
删除文件
const fs = require('fs');
fs.unlink('example.txt', (err) => {
if (err) throw err;
console.log('File deleted');
});
创建目录

const fs = require('fs');
fs.mkdir('newfolder', (err) => {
if (err) throw err;
console.log('Directory created');
});
使用 Promise API
Node.js 也提供了基于 Promise 的文件系统 API:
const fs = require('fs').promises;
async function readFile() {
try {
const data = await fs.readFile('example.txt', 'utf8');
console.log(data);
} catch (err) {
console.error(err);
}
}
readFile();
浏览器端的文件 I/O
在浏览器环境中,可以使用 File API 处理用户选择的文件:
读取用户选择的文件
document.getElementById('fileInput').addEventListener('change', (event) => {
const file = event.target.files[0];
const reader = new FileReader();
reader.onload = (e) => {
console.log(e.target.result);
};
reader.readAsText(file);
});
保存文件到本地
function saveFile(content, fileName) {
const blob = new Blob([content], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = fileName;
a.click();
URL.revokeObjectURL(url);
}
saveFile('Hello World', 'example.txt');






