Node.js檔案系統操作
這次帶給大家Node.js檔案系統操作,Node.js檔案系統操作的注意事項有哪些,下面就是實戰案例,一起來看一下。
1. 同步方法與非同步方法
# 在Node.js中,使用fs模組來實作所有有關檔案及目錄的建立、寫入及刪除操作。 ,在fs模組中,所有對檔案及目錄的操作都可以使用同步與非同步這兩種方法。這兩者差異是:同步方法立即傳回操作結果,在使用同步方法執行的操作結束之前,不能執行後續程式碼,程式碼類似如下:
Var fs = require('fs') var data = fs.readFileSysnc('./index.html','utf8') //等待操作返回结果,然后利用该结果 console.log(data)
而非同步方法將操作結果作為回呼函數的參數進行傳回,在方法呼叫之後,可以立即執行後續程式碼,程式碼如下:
var fs = require('fs') fs.readFile('./index.html','utf8'.function(err,data){ //操作结果作为回调函数的第二个参数返回 console.log(data) })
另外,當使用如下所示的方法呼叫多個非同步方法時,並不能確保操作結果的回傳順序
fs.readFile('./file.html',function(err,data){ //回调函数代码 }) fs.readFile('./otrher.html',function(err,data){ //回调函数代码 })
在上述程式碼中,我們同時執行兩個檔案的讀取操作,但是並不確保哪個操作結果先輩回傳。如果要確保在一個問價讀取完畢後再讀取兩一個文件,我們應該使用以下方法:
fs.readFileSync('./file.html',function(err,data){ //回调函数代码 }) fs.readFileSync('./otrher.html',function(err,data){ //回调函数代码 })
2. 對檔案執行讀寫操作
# 2.1 檔案的完整讀寫
# 可以使用readFile方法或readFileSync方法完整讀取一個檔案:
fs.readFile(filename,[options],callback) //第一个参数:必选指定读取文件的完整文件路径及文件名 第二个参数:指定读取文件时需要使用的选项,在该参数值对象中可以使用flag属性指定对该文件采取什么操作,默认为‘r' option: flag'r':读取文件,如果文件不存在则抛出异常 'r+':读取并写入文件,如果文件不存在则抛出异常 'rs':以同步方式读取文件并通知操作系统忽略本地文件系统缓存,如果文件不存在则抛出异常。因为本属性值忽略本地缓存,适用于操作网络文件系统,但由于其对性能产生一定的负面影响,不建议在其他环境下使用 'w':写入文件,如果文件不存在则创建文件,如果文件存在则清空文件内容 'wx':作用与'w'类似,但以排他方式写入文件 'w+':读取并写入文件。如果不存在则创建文件,如果该文件已存在则清空文件内容 'wx+':作用与'w+'类似,但是以排他方式写入文件 'a':追加写入文件,如果文件不存在则创建文件 'ax':作用与'a+'类似,但是以排他方式打开文件 encoding: utf8,ascii,base64, callback(err,data){ //回调函数代码略 } //第一个参数为读取文件操作失败时触发的错误对象 第二个参数值为读取到的文件内容
在使用同步方法讀取檔案時,使用readFileSync方法:
var data = fs.readFileSync(filename,[options])
eg:
var fs = require('fs') try{ var data = fs.readFileSync('./text.txt','utf8') //在控制台中输出文件内容 console.log(data) }catch(ex){ console.log('读取文件时发生错误') }
在完整寫入一個檔案時,利用fs模組中的writeFile方法或writeFileSync方法
fs.writeFile(filename,datda,[options],callback) //第一个参数:用于指定被写入文件的完整文件路径及文件名 第二个参数:用于指定需要写入的内容,参会素可以为一个字符串或一个Buffer对象 第三个参数:指定写入文件时需要的选项 flag属性:用于指定该文件采用何种操作,默认为'w' mode属性:指定当文件被打开时对文件的读写权限,默认为0666(可读写),第一位必须为0,第二位用于规定文件或目录所有者的权限,第三位为文件或目录所属用户组的权限,第四位为其他用户权限 1:执行权限 2:写权限 4:读权限 encoding属性:指定使用何种编码格式来写入文件,:utf8 ascii base64 callback(err){ //回调函数代码 }
使用同步方式寫入檔案時,使用writeFileSync方法:
fs.writeFileSync(filename,data,[options])
將一個字串或一個快取區中的資料追加到一個檔案底部時,可使用fs模組中的appendFile或appendFildSync方法
fs.appendFile(filname,data,[options],callback) fs.appendFileSync(filename,data[options])
2.2 從指定位置開始讀寫檔案
首先需要使用fs模組中的open方法或openSync方法開啟文件,
fs.open(filename,flags,[mode],callback) 其中callback参数为:function(err,fd){ //回调函数代码 } //第一个参数为打开文件操作失败时所触发的错误对象, 第二个参数为一个整数值,代表打开文件时返回的文件描述符
使用同步方式開啟檔案時,使用openSync方法:
var fd = fs.openSync(filename,flag,[mode])
# 在開啟檔案之後,可以在回呼函數中使用fs模組中的read方法或readSync方法從檔案的指定位置讀取文件,也可以使用fs模組中的write方法或writeSync方法從檔案的指定處開始寫入數據
首先介紹read方法:
fs.read(fd,buffer,offset,length,position,callback) //第一个参数:open方法所所使用的回调函数中返回的文件描述符或openSync方法返回的文件描述符; 第二个参数:英语指定将文件数据读取到哪个缓存区; 第三个参数:整数,用于指定向缓存区中写入数据时的开始位置,以字节为单位 第四个参数:整数,指定从文件中读取的字节数 第五个参数:整数,指定读取文件时开始位置 callback(err,bytesRead,buffer){ //回调函数代码 } err:读取文件操作失败时触发的错误对象 bytesRead实际读取的字节数 buffer:被读取的缓存区对象
使用同步方式開啟檔案時,使用readSync方法:
var byteRead = fs.readSync(fd,buffer,offset,length,position)
# 在開啟檔案後,使用fs模組中的write方法或writeSync方法從一個快取區讀取資料並且從檔案的指定處開始吸入這些資料
fs.write(fd,buffer,offset,length,position,callback) 其中callback为function(err,written,buffer){ //回调函数代码 } eg: 1 var fs = require('fs') 2 var buf = new Buffer('我喜欢编程') 3 fs.open('./message.txt','w',function(err,fd){ 4 fs.write(fd,buf,3,9,0,function(err,written,buffer){ 5 if(err)console.log("写文件操作失败") 6 console.log("写文件操作成功") 7 }) 8 })
使用同步方式寫入檔案時,使用writeSync 方法
fs.writeSync(fd,buffer,offset,length,position)
在fs模組中,使用close方法與closeSync方法關閉檔案
fs.close(fd,[callbcak]) fs.closeSync(fd)
在呼叫close方法前,可以利用fsyn方法將快取區內容全部寫入文件,防止出現遺漏資料
fs.fsyn(fd,[callback])
簡訊# 關注php中文網其它相關文章!
推薦閱讀:
HTML標籤與DOM節點結合JS隱含型別轉換總結以上是Node.js檔案系統操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PyCharm是一款非常受歡迎的Python整合開發環境(IDE),它提供了豐富的功能和工具,使得Python開發變得更有效率和便利。本文將為大家介紹PyCharm的基本操作方法,並提供具體的程式碼範例,幫助讀者快速入門並熟練操作工具。 1.下載安裝PyCharm首先,我們需要前往PyCharm官網(https://www.jetbrains.com/pyc

sudo(超級使用者執行)是Linux和Unix系統中的關鍵指令,允許一般使用者以root權限執行特定指令。 sudo的功能主要體現在以下幾個方面:提供權限控制:sudo透過授權使用者以臨時方式取得超級使用者權限,從而實現了對系統資源和敏感操作的嚴格控制。普通用戶只能在需要時透過sudo獲得臨時的特權,而不需要一直以超級用戶登入。提升安全性:透過使用sudo,可以避免在常規操作中使用root帳號。使用root帳戶進行所有操作可能會導致意外的系統損壞,因為任何錯誤或不小心的操作都將具有完全的權限。而

LinuxDeploy的操作步驟及注意事項LinuxDeploy是一款強大的工具,可協助使用者在Android裝置上快速部署各種Linux發行版,讓使用者在行動裝置上體驗完整的Linux系統。本文將詳細介紹LinuxDeploy的操作步驟以及注意事項,同時提供具體的程式碼範例,幫助讀者更好地使用此工具。操作步驟:安裝LinuxDeploy:首先在

想必很多的用戶家裡都有那麼幾台不用的電腦,因為長時間不用完全忘了開機密碼,於是想知道一下,忘記密碼要怎麼操作呢?那就一起來看看吧。 win10開機密碼忘記按F2怎麼操作1、按下電腦的電源鍵,然後開機時按下F2(不同電腦品牌進入bios的按鍵也不同)。 2.在bios介面中,找到security選項(不同品牌電腦的位置可能有所不同)。一般都在頂部的設定選單中。 3.然後找到SupervisorPassword選項並且點選。 4.這時候用戶就可以看到自己的密碼了,同時找到旁邊的Enabled切換為Dis

隨著智慧型手機的普及,螢幕截圖功能成為日常使用手機的必備技能之一。華為Mate60Pro作為華為公司的旗艦手機之一,其截圖功能自然也備受用戶關注。今天,我們就來分享華為Mate60Pro手機的截圖操作步驟,讓大家能夠更方便地進行截圖操作。首先,華為Mate60Pro手機提供了多種截圖方式,可以依照個人習慣選擇適合自己的方式來操作。以下詳細介紹幾種常用的截

餓了麼這款軟體裡面匯集了各種不同的美食,大家可以在線上挑選下單,商家接單後就會立即進行製作,用戶們可以透過軟體來綁定微信,想要了解具體的操作方法的話,記得來PHP中文網看看哦。餓了麼綁定微信方法說明1、先打開餓了麼軟體,進入到首頁後我們點選右下角的【我的】;2、然後在我的頁面中我們需要點選左上角的【帳號】; 3.接著來到個人資料的頁面中我們可以綁定手機、微信、支付寶、淘寶,在這裡我們點擊【微信】;4、最後點擊過後在微信授權的頁面中選好需要綁定的微信號之後點擊【允許】即可;

PHP字串操作:有效去除空格的實用方法在PHP開發中,經常會遇到需要對字串進行去除空格操作的情況。去除空格可以讓字串更加整潔,方便後續的資料處理和顯示。本文將介紹幾種有效的去除空格的實用方法,並附上具體的程式碼範例。方法一:使用PHP內建函數trim()PHP內建函數trim()可以移除字串兩端的空格(包括空格、製表符、換行符等),非常方便且簡單易用

1.PDO簡介PDO是PHP的擴充庫,它提供了一個物件導向的方式來操作資料庫。 PDO支援多種資料庫,包括Mysql、postgresql、oracle、SQLServer等。 PDO使開發人員能夠使用統一的api來操作不同的資料庫,這使得開發人員可以在不同的資料庫之間輕鬆切換。 2.PDO連接資料庫要使用PDO連接資料庫,首先需要建立一個PDO物件。 PDO物件的建構函式接收三個參數:資料庫類型、主機名稱、資料庫使用者名稱和密碼。例如,以下程式碼建立了一個連接到mysql資料庫的物件:$dsn="mysq
