- Node.js全程實例
- 李柯泉編著
- 1145字
- 2020-01-20 14:59:54
3.2 打開與關閉文件
其實,在Node程序中管理一個文件,最簡單、最常用的就是打開文件和關閉文件這兩個操作。文件系統fs模塊中提供了fs.open()與fs.openSync()兩個方法來完成打開文件的操作,相應地提供了fs.close()與fs.closeSync()兩個方法來完成關閉文件的操作。
下面我們分別通過同步方式打開文件和異步方式打開文件進行介紹。
1. 同步方式打開文件
以同步方式打開和關閉文件需要使用fs.openSync()方法和fs.closeSync()方法進行操作。下面是一個以同步方式打開文件的代碼實例。
【代碼3-1】(詳見源代碼目錄ch03-node-fs-open-sync.js文件)

【代碼分析】
? 為了測試文件打開與關閉的操作,先在代碼文件目錄下新建一個“txt”子目錄,然后在該子目錄中創建一個名稱為“openSync.txt”的文本文件。
? 第07~19行代碼主要用于參看文本文件的內容,其中第11~18行使用exec()方法打印輸出了“openSync.txt”文本文件的內容;另外,這段代碼中使用到的功能模塊會在后續章節中詳細介紹,讀者可先忽略。
? 第24行代碼通過require()指令引用了文件系統fs模塊。
? 第25行代碼和第29行代碼分別通過fs.openSync()與fs.closeSync()方法執行了文件打開與文件關閉的操作;同時,通過這兩個方法的返回值獲取了文本文件的文件描述符(fd)參數信息。
單擊工具欄中的“運行(Run)”命令按鈕,通過“運行、調試和控制臺輸出”查看信息輸出,如圖3.1所示。

圖3.1 打開與關閉文件的方法(同步方式)
如圖3.1所示,通過fs.openSync()方法與fs.closeSync()方法進行文件打開與文件關閉(同步版本)的操作均獲得了成功,同時還獲取了文件描述符參數信息(本例為數值3)。
2. 異步方式打開文件
上面介紹的是同步方式打開文件的方法,下面接著向讀者介紹異步方式打開文件的方法。異步方式打開文件和關閉文件需要使用fs.open()方法和fs.close()方法進行操作。下面看一個以異步方式打開文件的代碼實例。
【代碼3-2】(詳見源代碼目錄ch03-node-fs-open-async.js文件)

【代碼分析】
? 為了測試以異步方式打開與關閉文件的操作,繼續在之前創建的“txt”子目錄中創建一個名稱為“open.txt”的文本文件。
? 第23行代碼通過require()指令引用了文件系統fs模塊。
? 第27行代碼通過fs.open()方法執行了異步方式打開文件的操作,其中參數a表示以追加方式打開文件,如果文件不存在,就創建一個空文件;而第27~40行代碼定義了fs.open()方法的回調函數,參數fd為文件描述符。
? 因為fs.open()方法是以異步方式打開文件的,所以關閉文件的操作定義在了該回調函數中,具體就是在第35~39行代碼中,通過fs.close()方法執行了以異步方式關閉文件的操作。
單擊工具欄中的“運行(Run)”命令按鈕,通過“運行、調試和控制臺輸出”查看信息輸出,如圖3.2所示。

圖3.2 打開與關閉文件的方法(異步版本)
如圖3.2所示,通過fs.open()方法與fs.close()方法進行文件打開與關閉(異步版本)操作均獲得了成功,同時還獲取了文件描述符參數信息(本例為數值3)。
另外,對于操作系統內核而言,所有打開的文件都通過文件描述符引用。文件描述符是一個非負整數,當打開一個現有文件或創建一個新文件時,內核向進程返回文件描述符信息。
- 程序員面試筆試寶典(第3版)
- 移動UI設計(微課版)
- 控糖控脂健康餐
- 從0到1:HTML+CSS快速上手
- UI智能化與前端智能化:工程技術、實現方法與編程思想
- Java虛擬機字節碼:從入門到實戰
- Blockly創意趣味編程
- Python Data Analysis Cookbook
- Creating Mobile Apps with jQuery Mobile(Second Edition)
- Building Machine Learning Systems with Python(Second Edition)
- INSTANT Adobe Edge Inspect Starter
- Magento 2 Beginners Guide
- Python Projects for Kids
- 計算機組裝與維護(第二版)
- 零基礎學SQL(升級版)