<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                >[success] # 打開文件 -- open 1. `Node.js`中的`fs.open()`方法用于打開一個文件,并返回一個文件描述符(`fd`)。文件描述符是操作系統為了管理文件而提供的一個抽象概念,它是一個非負整數,用于標識一個打開的文件。通過文件描述符,我們可以使用底層的系統調用進行文件操作,例如讀取文件內容、寫入文件內容、關閉文件等 2. `fs.promises.open()`方法打開文件時,我們可以直接獲取到`FileHandle`對象 3. 注意兩者不同當我們使用`fs.open()`方法打開文件時,我們只能獲取到文件描述符(fd),但 `fs.promises.open()`是可以直接`FileHandle`對象 4. 使用文件描述符進行文件讀取的方式更加底層,需要手動打開文件,獲取文件描述符,然后使用文件描述符進行讀取操作,最后再手動關閉文件 5. 關于 `flag `參數說明 * `'r'`:以讀取模式打開文件。 * `'r+'`:以讀寫模式打開文件。 * `'w'`:以寫入模式打開文件,如果文件不存在則創建文件,如果文件存在則清空文件內容。 * `'w+'`:以讀寫模式打開文件,如果文件不存在則創建文件,如果文件存在則清空文件內容。 * `'a'`:以**追加模式**打開文件,如果文件不存在則創建文件。 * `'a+'`:以**讀取追加模式**打開文件,如果文件不存在則創建文件。 >[info] ## 使用 `fs.open(path[, flags[, mode]], callback)` | 參數名 | 類型 | 描述 | | --- | --- | --- | | `path` | `string` | 要打開的文件路徑。 | | `flags` | `string` | 打開文件的方式,可以是以下值之一:`'r'`,`'r+'`,`'w'`,`'w+'`,`'a'`或`'a+'`。`flags`參數默認是 undefined,如果沒有指定`flags`參數,則默認以讀取模式`'r'`打開文件 | | `mode` | `number` | 文件權限,默認為`0o666`,表示所有用戶都有讀寫權限。 | | `callback` | `Function` | 回調函數,接收兩個參數,第一個參數是錯誤對象,第二個參數是打開的文件描述符(一個整數),用于后續的文件操作。 | >[danger] ##### 代碼案例使用read 讀 ~~~ const fs = require('fs') fs.open('b.txt', (err, fd) => { if (err) { console.log(err) } else { console.log(fd) // 需要能直接操作fd 的api 進行操作讀寫 fs.read(fd, (err, data, buffer) => { if (err) { console.log(err) } else { console.log(buffer.toString(), '--') } // 關閉文件 // fs.close(fd) fs.close(fd, (err) => { if (err) { console.error(err) return } }) }) } }) ~~~ >[danger] ##### 代碼案例使用write 寫入 ~~~ const fs = require('fs') // 打開文件并且末尾追加 fs.open('b.txt', 'a', (err, fd) => { if (err) { console.log(err) } else { fs.write(fd, 'hello world', (err) => { if (err) { console.log(err) } else { console.log('寫入成功') } }) } }) ~~~ >[info] ## 使用 fs.promises.open(path[, flags[, mode]]) 1. `fs.promises.open()`是 Node.js 的`fs`模塊中提供的一個 Promise 風格的 API,用于打開文件并返回一個文件描述符(file descriptor)對象,以便后續對文件進行讀取、寫入等操作。與`fs.open()`方法相比,`fs.promises.open()`的使用方式更加簡潔、方便。 2. `fs.promises.open()`方法返回一個 Promise 對象,如果文件打開成功,則 Promise 對象會被 resolved,并將文件描述符對象作為參數傳遞給回調函數;如果文件打開失敗,則 Promise 對象會被 rejected,并將錯誤對象作為參數傳遞給回調函數。 3. `fs.promises.open(path[, flags[, mode]])`該方法接收三個參數,其中 `path `參數是要打開的文件路徑,`flags` 參數是打開文件的方式,`mode `參數是文件權限。`flags `和 `mode `參數都是可選的,如果不傳遞,則默認以讀取模式打開文件 4. **方法返回一個 Promise 對象,該 Promise 對象會被 resolved 并返回一個文件描述符對象** 注意和不同 `fs.open` 返回的是文件描述符(`fd`) | 參數名 | 類型 | 描述 | | --- | --- | --- | | `path` | `string` | 要打開的文件路徑。 | | `flags` | `string` | 打開文件的方式,可以是以下值之一:`'r'`,`'r+'`,`'w'`,`'w+'`,`'a'`或`'a+'`。 | | `mode` | `number` | 文件權限,默認為`0o666`,表示所有用戶都有讀寫權限。 | >[danger] ##### 使用文件描述符對象(fileHandle) 讀取 ~~~ const fs = require('fs').promises // 打開文件并且讀取文件內容 async function readFile() { let fileHandle try { // 獲取文件句柄 fileHandle = await fs.open('./b.txt') // 讀取文件內容 const data = await fileHandle.readFile('utf-8') console.log(data) } catch (e) { console.log(e) } finally { // 關閉文件 await fileHandle.close() } } readFile() ~~~ >[danger] ##### 使用文件描述符對象(fileHandle) 寫入 ~~~ const fs = require('fs').promises // 打開文件并且讀取文件內容 async function writeFile() { let fileHandle try { // 獲取文件句柄 fileHandle = await fs.open('./b.txt', 'a+') // 寫入文件內容 await fileHandle.writeFile('hello world', { encoding: 'utf-8', }) console.log('Data written to file.' + data) } catch (error) { console.error(error) } finally { // 關閉文件 if (fileHandle) { await fileHandle.close() } } } writeFile() ~~~ >[danger] ##### fs.openSync 同步打開獲取是fd >[danger] ##### 說明 1. 更多關于fileHandle 方法操作參考文件掃描符章節
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看