# NodeJS怎么讀取指定的文件和目錄
在Node.js開發中,文件系統操作是最基礎且常用的功能之一。本文將詳細介紹如何使用Node.js內置的`fs`模塊讀取指定文件和目錄。
## 一、文件系統模塊簡介
Node.js通過`fs`模塊提供文件系統操作功能,該模塊包含同步和異步兩種API:
```javascript
const fs = require('fs'); // 同步/異步回調式API
const fsPromises = require('fs').promises; // Promise版本API
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log('文件內容:', data);
});
try {
const data = fs.readFileSync('example.txt', 'utf8');
console.log('文件內容:', data);
} catch (err) {
console.error('讀取失敗:', err);
}
async function readFile() {
try {
const data = await fsPromises.readFile('example.txt', 'utf8');
console.log('文件內容:', data);
} catch (err) {
console.error('讀取失敗:', err);
}
}
fs.readdir('./my-directory', (err, files) => {
if (err) throw err;
console.log('目錄內容:', files);
});
try {
const files = fs.readdirSync('./my-directory');
console.log('目錄內容:', files);
} catch (err) {
console.error('讀取失敗:', err);
}
const path = require('path');
async function readDirRecursive(dir) {
const entries = await fsPromises.readdir(dir, { withFileTypes: true });
const files = await Promise.all(entries.map(entry => {
const fullPath = path.join(dir, entry.name);
return entry.isDirectory() ? readDirRecursive(fullPath) : fullPath;
}));
return files.flat();
}
const readStream = fs.createReadStream('large-file.txt', 'utf8');
readStream.on('data', chunk => console.log('數據塊:', chunk));
readStream.on('end', () => console.log('讀取完成'));
const files = fs.readdirSync('./').filter(file => file.endsWith('.js'));
fs.stat('example.txt', (err, stats) => {
console.log('是否是文件:', stats.isFile());
console.log('創建時間:', stats.birthtime);
});
path
模塊跨平臺兼容Node.js通過fs
模塊提供了豐富的文件系統操作方法,開發者可以根據場景選擇:
- 簡單場景:使用readFileSync
/readdirSync
- 生產環境:推薦異步API或Promise版本
- 特殊需求:結合path
、stream
等模塊實現
掌握這些基礎操作后,可以進一步學習文件監聽(fs.watch)、文件寫入等進階功能。 “`
這篇文章共計約700字,采用Markdown格式編寫,包含代碼示例和結構化說明,適合技術博客或文檔使用。如需調整內容長度或細節,可以進一步修改。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。