摘要:異步文件系統不會阻塞程序的執行,而是在操作完成時,通過回調函數將結果返回。
文件系統(File System):
在Node中,文件系統的交互是非常重要的,服務器的本質就是將本地的文件發送給客戶端,
Node通過fs模塊來和文件系統進行交互,該模塊提供了一些標準的文件訪問API類打開、讀取、寫入文件、以及與其交互。
要是用fs模塊,首先要從核心模塊中加載; 使用 const fs= require("fs") ; 來引入
fs使用特點:fs模塊中的所有操作都有兩種形式可供選擇同步和異步,
同步文件系統會阻塞程序的執行,也就是除非操作完畢,否則不會向下執行代碼。
異步文件系統不會阻塞程序的執行,而是在操作完成時,通過回調函數將結果返回。
//1. 引入模塊 const fs= require("fs"); // console.log(fs) //2. 打開文件 // fs.open 異步讀?。ㄍǔS卯惒?需設置回調函數) // fs.openSync 同步讀?。ㄗx取時會阻塞線程) let hello = fs.openSync("hello.txt", "w"); // 不存在會自動新建 //3. 寫入內容 fs.writeFileSync(hello,"hello word!"); //4. 保存并退出 fs.closeSync(hello);
[](https://github.com/AnsonZnl/S...
文件操作:打開文件:
fs.open(path,flags[,mode],callback)
異步打開 異步都是回調 回調嵌套回調
fs.openSync(path,flags[,mode])
同步打開
文件標記(flags):?http://nodejs.cn/api/fs.html#fs_fs_open_path_flags_mode_callback
一、同步打開文件
//1. 引入模塊 let fs = require("fs"); //2.打開文件 同步 var fd=fs.openSync("1.txt", "w"); //3.寫入內容 fs.writeFileSync(fd,"hello world!"); //4. 保存并關閉 fs.closeSync(fd);
二、異步打開文件
//1.引入模塊 let fs = require("fs"); //2. 打開文件 fs.open("1.txt", "a", (err, fd)=>{ //2.1判斷是否出錯 if(!err){ //正確 2.2寫入文件 fs.writeFile(fd, "今天天.....氣真好!", (err)=>{ //2.2.1 寫入成功 if(!err){ console.log("寫入成功"); }else{ throw err; } //2.3 關閉文件 fs.close(fd, (err)=>{ if(!err){ console.log("文件以保存并關閉") }else{ throw err; } }) }) }else{ throw err; } })
[](https://github.com/AnsonZnl/S...
使用文件流寫入文件流寫入:?http://nodejs.cn/api/fs.html#fs_fs_createwritestream_path_options
//同步操作 //1. 引入模塊 let fs= require("fs"); //2.建立通道 let ws = fs.createWriteStream("fsw.txt") //3.打開通道 ws.once("open", ()=>{ console.log("通道已經打開"); }) ws.once("close", ()=>{ console.log("通道已經關閉"); }) //4. 寫入內容 ws.write("我愛你,"); ws.write("我愛你,"); ws.write("我愛你,");
[](https://github.com/AnsonZnl/S...
讀寫文件:文檔地址:http://nodejs.cn/api/fs.html#fs_fs_readfile_path_options_callback
讀取文檔:
//1. 引入模塊 let fs = require("fs"); //2. 讀取文件 fs.readFile("source/hello.txt","utf8",(err,data)=>{ //判斷是否成功 if(!err){ console.log(data);// // console.log(data.toString()); //data 默認讀取的是二進制 使用toString() 方法轉換成 }else{ throw err; } }) 讀取圖片: //3. 讀取圖片 fs.readFile("source/psb.jpg",(err,data)=>{ //判斷是否成功 if(!err){ //寫入圖片 fs.writeFile("img.jpg", data, (err)=>{ if(!err){ console.log("寫入成功!") }else{ throw err; } }) }else{ throw err; } });
[](https://github.com/AnsonZnl/S...
讀取視頻:
//1. 引入模塊 let fs= require("fs"); //2. 讀取視頻 fs.readFile("source/cddbb.mp4", (err, data)=>{ if(!err){ // 寫入視頻 fs.writeFile("nmx.mp4", data, (err)=>{ if(!err){ console.log("寫入成功!"); }else{ throw err; } }) }else{ throw err; } }) //3. 流式文件的讀入(批量文件處理) let re= fs.createReadStream("source/cddbb.mp4"); //建立讀取流 let ws= fs.createWriteStream("新建的視頻.mp4"); //建立寫入流 //4. 創建管道 re.pipe(ws);//文件流傳輸 console.log("文件流傳輸完成")
參考:詳解NodeJS文件系統fs
我的GitHub總結的NodeJS筆記
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99102.html
摘要:緩沖模塊起初就是為瀏覽器而設計的,所以能很好的處理編碼的字符串,但不能很好的處理二進制數據。有如下三個主要的流標準輸入標準輸出標準錯誤可讀流如果說,緩沖區是處理原始數據的方式的話,那么流通常是移動數據的方式。該方法讓可讀流繼續觸發事件。 緩沖(buffer)模塊 js起初就是為瀏覽器而設計的,所以能很好的處理unicode編碼的字符串,但不能很好的處理二進制數據。這是Node.js的...
摘要:方法也可以接收一個參數表示數據請求著請求的數據大小,但是可讀流可以根據需要忽略這個參數。讀取數據大部分情況下我們只要簡單的使用方法將可讀流的數據重定向到另外形式的流,但是在某些情況下也許直接從可讀流中讀取數據更有用。 介紹本文介紹了使用 node.js streams 開發程序的基本方法。 We should have some ways of connecting programs ...
摘要:是一款流式構建系統,如果說是基于任務執行器,就是基于的文件流任務執行器,比起有如下特點使用方便通過代碼優于配置的策略,可以讓簡單的任務簡單,復雜的任務更可管理。 作者:Jogis原文鏈接:https://github.com/yesvods/Blog/issues/1轉載請注明原文鏈接以及作者信息 showImg(http://itanguo.cn/wp-content/uploads...
摘要:等文件一旦打開,立刻執行寫入操作發射一個緩存區清空的事件自定義可寫流為了實現可寫流,我們需要使用流模塊中的構造函數。 流的基本概念及理解 流是一種數據傳輸手段,是有順序的,有起點和終點,比如你要把數據從一個地方傳到另外一個地方流非常重要,gulp,webpack,HTTP里的請求和響應,http里的socket都是流,包括后面壓縮,加密等流為什么這么好用還這么重要呢? 因為有時候我...
摘要:它們的作用域只在模塊內,詳見文檔回調函數與一樣,如模塊一個大項目一定是分成一個個模塊的,一般來說,一個文件就是一個模塊。這些對象有一個函數,用于將一個或多個函數綁定到命名事件上。用于注冊監聽器,用于觸發事件。 全局對象 類似的,在瀏覽器中有window全局變量在所有模塊中都可使用。不需要引用等。全局變量如console,setTimeout,require()等 全局變量在所有模塊中都...
閱讀 1225·2021-11-11 16:54
閱讀 1738·2021-10-13 09:40
閱讀 933·2021-10-08 10:05
閱讀 3498·2021-09-22 15:50
閱讀 3701·2021-09-22 15:41
閱讀 1782·2021-09-22 15:08
閱讀 2338·2021-09-07 10:24
閱讀 3571·2019-08-30 12:52