最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js進行文件讀取與復制的系統(tǒng)總結

 更新時間:2025年04月17日 09:50:32   作者:傻小胖  
這篇文章主要為大家詳細介紹了Node.js中文件讀取與復制相關內容的系統(tǒng)總結,包括 同步讀取,異步讀取,復制操作等,有需要的小伙伴可以跟隨小編一起了解下

Node.js 文件讀取與復制相關內容的系統(tǒng)總結,包括 同步讀取、異步讀取、流式讀取、復制操作、兩者對比及內存測試。

一、Node.js 文件讀取方式總結

Node.js 使用 fs(文件系統(tǒng))模塊進行文件操作:

1.同步讀取(Blocking)

const fs = require('fs');
const data = fs.readFileSync('file.txt', 'utf-8');
console.log(data);

? 優(yōu)點:邏輯簡單,適合初始化配置、命令行工具等無需并發(fā)場景。

?缺點:阻塞線程,讀取大文件會卡住整個應用。

當然可以!下面是一個使用 Node.js 同步方式進行文件復制的完整例子,先同步讀取文件內容,再同步寫入到目標文件。

示例:使用 fs.readFileSync + fs.writeFileSync 實現(xiàn)文件復制

const fs = require('fs');

try {
  // 同步讀取源文件內容
  const data = fs.readFileSync('source.txt', 'utf-8');

  // 同步寫入到目標文件
  fs.writeFileSync('target.txt', data);

  console.log('文件復制成功 ?');
} catch (err) {
  console.error('復制失敗 ?', err);
}

說明:

  • fs.readFileSync(path, encoding):阻塞方式讀取文件內容
  • fs.writeFileSync(path, data):阻塞方式將內容寫入文件
  • 適合小型文本文件復制(例如:配置文件、日志等)

注意:

會阻塞事件循環(huán),若文件大或復制頻繁,不適合用在服務端生產(chǎn)環(huán)境。

大文件建議使用流式復制方式。

2. 異步讀?。∟on-blocking)

const fs = require('fs');
fs.readFile('file.txt', 'utf-8', (err, data) => {
  if (err) throw err;
  console.log(data);
});
  • ? 優(yōu)點:非阻塞、適合高并發(fā),不會卡住主線程。
  • ?缺點:邏輯較復雜,需使用回調、Promise 或 async/await。

3. 流式讀取(Stream)

const fs = require('fs');
const readStream = fs.createReadStream('file.txt', 'utf-8');

readStream.on('data', chunk => {
  console.log('讀取塊:', chunk);
});

readStream.on('end', () => {
  console.log('讀取完成');
});
  • ? 優(yōu)點:適合讀取大文件、低內存消耗
  • ?缺點:實現(xiàn)復雜,處理邏輯需分塊處理。

二、讀取場景對比

方式適合場景特點
同步讀取小文件、本地 CLI 工具等簡單,阻塞線程
異步讀取Web 服務、文件上傳非阻塞,高性能
流式讀取視頻、大型日志、備份等節(jié)省內存,分塊

三、Node.js 文件復制方式

1. 同步復制

const fs = require('fs');
fs.copyFileSync('source.txt', 'target.txt');

? 簡單,適合少量小文件。

?阻塞線程,大量并發(fā)時不可用。

2. 流式復制(推薦)

const fs = require('fs');
const readStream = fs.createReadStream('source.txt');
const writeStream = fs.createWriteStream('target.txt');

readStream.pipe(writeStream);

? 非阻塞,適合大文件。

? 邊讀邊寫,內存占用低。

? 無法輕松控制復制進度或中斷。

四、復制方式對比

方法內存占用性能使用場景
同步復制小型項目、工具類
流式復制服務端、大文件

五、內存占用測試示例

可以通過 process.memoryUsage() 查看 Node.js 內存使用:

console.log(process.memoryUsage());

示例:對比讀取一個 500MB 文件時的內存變化:

// 流式讀取內存較低
const stream = fs.createReadStream('bigfile.txt');
stream.on('data', chunk => {
  console.log(process.memoryUsage().heapUsed);
});

// readFileSync 讀取整個文件占用大
const content = fs.readFileSync('bigfile.txt');
console.log(process.memoryUsage().heapUsed);

總結重點

功能同步異步流式
阻塞? 是? 否? 否
內存消耗? 高?? 中? 低
實現(xiàn)復雜度? 簡單?? 中等? 高
適合場景啟動、工具Web 服務大文件處理

到此這篇關于Node.js進行文件讀取與復制的系統(tǒng)總結的文章就介紹到這了,更多相關Node.js文件讀取與復制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • koa2 數(shù)據(jù)api中間件設計模型的實現(xiàn)方法

    koa2 數(shù)據(jù)api中間件設計模型的實現(xiàn)方法

    這篇文章主要介紹了koa2 數(shù)據(jù)api中間件設計模型的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • node.js基于mongodb的搜索分頁示例

    node.js基于mongodb的搜索分頁示例

    本篇文章主要介紹了node.js基于mongodb的搜索分頁示例,mongodb分頁很簡單,這里整理了詳細的代碼,有需要的小伙伴可以參考下。
    2017-01-01
  • Node.js 實現(xiàn) Stripe 支付的實現(xiàn)方法

    Node.js 實現(xiàn) Stripe 支付的實現(xiàn)方法

    本文介紹了使用Stripe支付系統(tǒng)的實現(xiàn)方法,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-11-11
  • nvm安裝方法以及安裝后node不能使用解決

    nvm安裝方法以及安裝后node不能使用解決

    在我們的日常開發(fā)中經(jīng)常會遇到這種情況,手上有好幾個項目,每個項目的需求不同,進而不同項目必須依賴不同版的NodeJS運行環(huán)境,nvm應運而生,這篇文章主要給大家介紹了關于nvm安裝方法以及安裝后node不能使用解決的相關資料,需要的朋友可以參考下
    2023-04-04
  • node.js制作一個簡單的登錄攔截器

    node.js制作一個簡單的登錄攔截器

    本文給大家分享的是使用node.js制作一個簡單的登錄攔截的思路及代碼,有需要的小伙伴可以參考下
    2020-02-02
  • 前端常見面試題之a(chǎn)sync/await和promise的區(qū)別

    前端常見面試題之a(chǎn)sync/await和promise的區(qū)別

    async/await是異步代碼的新方式,以前的方法有回調函數(shù)和Promise,下面這篇文章主要給大家介紹了關于前端常見面試題之a(chǎn)sync/await和promise區(qū)別的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Node.js程序中的本地文件操作用法小結

    Node.js程序中的本地文件操作用法小結

    這篇文章主要介紹了Node.js程序中的本地文件操作用法小結,作為運行在服務器端的JavaScript解釋器,Node中自然擁有操作本地文件的方法,需要的朋友可以參考下
    2016-03-03
  • node文件資源管理器的解壓縮從零實現(xiàn)

    node文件資源管理器的解壓縮從零實現(xiàn)

    這篇文章主要為大家介紹了node文件資源管理器的解壓縮從零實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Nodejs中自定義事件實例

    Nodejs中自定義事件實例

    這篇文章主要介紹了Nodejs中自定義事件實例,比較簡單的一個例子,需要的朋友可以參考下
    2014-06-06
  • Node.js中的異步生成器與異步迭代詳解

    Node.js中的異步生成器與異步迭代詳解

    這篇文章主要給大家介紹了關于Node.js中異步生成器與異步迭代的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01

最新評論

东山县| 阜阳市| 荣成市| 深州市| 宿松县| 孙吴县| 东山县| 方正县| 望江县| 蒙城县| 诸暨市| 高阳县| 哈巴河县| 宣化县| 海晏县| 朝阳区| 昆明市| 灌阳县| 泸水县| 漳平市| 文化| 扎鲁特旗| 斗六市| 定州市| 凌云县| 鄂尔多斯市| 台州市| 达日县| 吉木乃县| 宜都市| 凤阳县| 申扎县| 靖宇县| 镇雄县| 宁武县| 新丰县| 庐江县| 阳山县| 竹北市| 青浦区| 三亚市|