首頁  >  文章  >  web前端  >  談談Node.js中的檔案寫入

談談Node.js中的檔案寫入

青灯夜游
青灯夜游轉載
2020-12-04 17:57:538024瀏覽

本篇文章為大家介紹一下Node.js中的檔案寫入。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

談談Node.js中的檔案寫入

相關推薦:《node js教學

看完檔案讀取再看檔案寫入非常簡單,兩者的操作幾乎一一對應

fs.writeFile

fs.writeFile(file, data[, options], callback)

  • #file:檔案名稱或檔案描述子

  • data:常用的主要是string 和buffer

  • callback(err)

當 file 是檔案名稱時,則非同步地寫入資料到文件,如果檔案已存在,則覆寫檔案內容

const fs = require('fs');

const data = Buffer.from('Hello, Node.js');
fs.writeFile('./test.txt', data, err => {
  if (err) throw err;
  console.log('文件已被保存');
});

fs.write

fs.write 有兩種重載

  • fs.write(fd, buffer[, offset[ , length[, position]]], callback):參數意義和fs.read 幾乎相同

  • fs.write(fd, string[, position[, encoding]], callback) :只能把字串內容全部寫入檔案

兩個的差別就是適用buffer 可以治寫入buffer 中offset ~ length offset 的內容,而使用字串只能把字串內容全部寫入檔案

const fs = require('fs');

const data1 = Buffer.from('Hello, Node.js');
const data2 = 'Hello, Node.js';

const fd = fs.openSync('./test.txt', 'w');
console.log(fd)

fs.write(fd, data1, err => {
  if (err) throw err;
  console.log('data1 已被写入');
});

fs.write(fd, data2, err => {
  if (err) throw err;
  console.log('data2 已被写入');
});

setTimeout(() => {
  fs.close(fd, console.log);
}, 100);

fs.appendFile

fs.appendFile(path, data[, options], callback) 將資料追加到檔案尾部,如果檔案不存在則建立該檔案

const fs = require('fs/promises');

const data1 = Buffer.from('Hello,');
const data2 = Buffer.from(' Node.js');

fs.appendFile('./test.txt', data1)
  .then(() => {
    fs.appendFile('./test.txt', data2);
    console.log('文件内容追加完成');
  });

fs.createWriteStream

fs.createWriteStream(path[, options]) 用來建立一個可寫入的檔案流,options 和fs.createReadStream 幾乎相同
options(比較常用的有)

  • fd: 預設值null,如果指定了fd,則會忽略path 參數,使用指定的檔案描述子(不會再觸發open 事件)
  • mode:預設值0o666
  • autoClose: 預設值: true,當'error' 或'finish' 事件時,檔案描述符會被自動地關閉
  • start: 開始寫入檔案的位置,不設定預設覆蓋

把一個可讀流內容寫到可寫流非常簡單

const fs = require('fs');

fs.createReadStream('./test.txt')
  .pipe(fs.createWriteStream('./copy.txt'));

關於流的介紹和更多使用在 Buffer 和Stream 章節會有詳細介紹

#更多程式相關知識,請造訪:程式設計教學! !

以上是談談Node.js中的檔案寫入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除