国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Node.js學習之路05——fs文件系統(tǒng)之文件的寫入和讀取

leanote / 3503人閱讀

fs文件系統(tǒng)
Node.js中,提供一個fs模塊,以實現文件及目錄的讀寫操作。
1. 同步和異步方法
一般來講,讀取文件使用異步的方法,但是在讀取例如系統(tǒng)配置文件時,應該使用同步的方法
2. 普通文件寫入和讀取 2.1 文件寫入 2.1.1 寫入一個基本的文本文件

如果不存在要寫入的文件,那么將會自動創(chuàng)建一個文件

const fs = require("fs");
let writeData = "The engaged couple will appear for a photo outside Kensington Palace on Monday afternoon, and will take part in a broadcast interview in the evening.";
fs.writeFile("./writeFile.txt", writeData, "utf-8", function (err) {
    if (err) {
        console.log("there are some wrong happened~");
    } else {
        console.log("Write successfully~~");
    }
});
2.1.2 復制圖片及各種二進制文件(以圖片文件為例)

當前文件夾下有一個fileImage.jpg的圖片文件

const fs = require("fs");
fs.readFile("./fileImage.jpg", "base64", function (err, data) {
    if (err) {
        console.log("讀取圖片失敗,請檢查錯誤");
    } else {
        fs.writeFile("./fileImageCopy.jpg", data, "base64", function (err) {
            if (err) {
                console.log("復制圖片文件失敗");
            } else {
                console.log("復制圖片文件成功");
            }
        });
    }
});
2.2 文件讀取 2.2.1 文件異步讀取
當前目錄下有一個readFile.txt文件,文件的內容是hello, this is a read file txt.
const fs = require("fs");
fs.readFile("./readFile.txt", "utf-8", function(err, data){
    if (err) {
        console.log("read file wrong", err);
    } else {
        console.log("dataAsync");
        console.log(data);
    }
});
/**
 * dataAsync
 * hello, this is a read file txt.
 * **/
2.2.2 文件同步讀取
const fs = require("fs");
let dataSync = fs.readFileSync("./readFile.txt", "utf-8");
console.log("dataSync");
console.log(dataSync);
/**
 * dataSync
 * hello, this is a read file txt.
 * **/
3. 追加數據 3.1 對文本文件同步追加數據
const fs = require("fs");
const appendFileContent = "this is appendFileContent box";
fs.appendFileSync("./appendFile.txt", appendFileContent, "utf-8");
3.2 對文本文件異步追加數據

appendFile.txt原本內容

hello, this a basic append txt file.

-
const fs = require("fs");
const appendFileContent = "this is appendFileContent box";
fs.appendFile("./appendFile.txt", appendFileContent, "utf-8", function (err) {
    if (err) {
        console.log("追加文件操作失敗");
    } else {
        fs.readFile("./appendFile.txt", "utf-8", function (err, data) {
            if (err) {
                console.log("追加成功,但是讀取失敗");
            } else {
                console.log("追加成功,讀取操作成功");
                console.log(data);
            }
        });
    }
});
/**
* 追加成功,讀取操作成功
* hello, this a basic append txt file.
* 
* -this is appendFileContent box 
* **/
4. 文件的打開和關閉
fd代表打開文件時返回的文件描述符,在windows操作系統(tǒng)中,文件描述符也稱為文件句柄。
4.1 異步打開文件
const fs = require("fs");
fs.open("./openFile.txt", "r", (err, fd) => {
    if (err) {
        console.log("open file wrong", err);
    } else {
        console.log("open");
        console.log(fd);
    }
});
/**
* open
* 3
* **/
4.2 同步打開文件
const fs = require("fs");
let openSync = fs.openSync("./openFile.txt", "r");
console.log("openSync");
console.log(fd);
fs.clodeSync(fd); // 同步關閉文件
/**
* openSync
* 3
* **/
5. fsfs.writefs.read

在使用write方法或者writeSync方法在文件中寫入數據時

操作系統(tǒng)的做法是首先將該部分數據讀取到內存中,再把數據寫到文件中

當數據讀取完畢時不代表數據已經寫完,因為還有一步部分可能會留在內存緩沖區(qū)中.

這時候如果調用close或者closeSync方法關閉文件,那么這部分數據就會丟失,

這時候就可以采用fs模塊中的fsync方法對文件進行同步操作,即將內存緩沖區(qū)中的剩余數據全部寫入文件.

5.1 文件寫入

當前目錄下有一個write.txt文件,文件的內容是我喜歡編程

5.1.1 異步寫入

更加底層的一種寫入方法,可以從指定位置寫入數據

fs.write寫入,需要先打開文件,根據文件資源句柄,寫入內容

fs.write(fd, buffer, offset, length, position, callback(err, written, buffer))

const fs = require("fs");
let buf = new Buffer("我喜歡編程");
fs.open("./write.txt", "w", function (err, fd) {
    if (err) {
        console.log("open file wrong", err);
    } else {
        fs.write(fd, buf, 3, 9, 0, function (err, written, buffer) {
            if (err) {
                console.log("寫文件操作失敗");
            } else {
                console.log("寫文件操作成功");
                console.log(buffer.toString());
            }
        });
    }
});
/**
 * 寫文件操作成功
 * 我喜歡編程
 * **/
5.1.2 同步寫入

fs.writeSync(fd, buffer, offset, length, position)

const fs = require("fs");
let buf = new Buffer("我喜歡編程");
fs.open("./write.txt", "w", function (err, fd) {
    if (err) {
        console.log("open file wrong", err);
    } else {
        fs.writeSync(fd, buf, 3, 9, 0);
    }
});
5.2 文件讀取

當前目錄下有一個open.txt文件,文件的內容是我喜歡編程

5.2.1 同步讀取

fs.readSync(fd, buffer, offset, length, position, callback)

const fs = require("fs");
 fs.open("./open.txt", "r", function(err, fd){
    var buf = new Buffer(255).fill(0);
    var bytesRead = fs.readSync(fd, buf, 0, 9, 3);
    console.log(bytesRead);//9
    console.log(buf.slice(0, bytesRead).toString());//喜歡編
});
5.2.2 異步讀取

fs.read(fd, buffer, offset, length, position, callback(err,bytesRead, buffer))

const fs = require("fs");
fs.open("./open.txt", "r", function (err, fd) {
    let buf = new Buffer(255).fill(0);//緩存區(qū)
    fs.read(fd, buf, 0, 9, 3, function (err, bytesRead, buffer) {
        console.log(buffer.slice(0, bytesRead).toString());//喜歡編
    });
});

fs.open("./open.txt", "r", function (err, fd) {
    let buf = new Buffer(255).fill(0);//緩存區(qū)
    fs.read(fd, buf, 0, 9, 3, function (err, bytesRead, buffer) {
        console.log(buffer.slice(0, bytesRead).toString());//喜歡編
        fs.read(fd, buf, 0, 3, null, function (err, bytesRead, buffer) {
            console.log(buffer.slice(0, bytesRead).toString());//程
        });
    });
});

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107593.html

相關文章

  • Node.js學習08——fs文件系統(tǒng)stream流基本介紹

    摘要:中各種用于讀取數據的對象對象描述用于讀取文件代表客戶端請求或服務器端響應代表一個端口對象用于創(chuàng)建子進程的標準輸出流。如果子進程和父進程共享輸入輸出流,則子進程的標準輸出流被廢棄用于創(chuàng)建子進程的標準錯誤輸出流。 9. stream流 fs模塊中集中文件讀寫方法的區(qū)別 用途 使用異步方式 使用同步方式 將文件完整讀入緩存區(qū) readFile readFileSync 將文件部...

    BoYang 評論0 收藏0
  • Node.js學習06——fs文件系統(tǒng)目錄操作與文件信息

    6. 目錄操作 6.1 創(chuàng)建目錄 如果存在該目錄,就創(chuàng)建失敗 同步創(chuàng)建目錄fs.mkdirSync(path, [mode]) const fs = require(fs); let mkdir = ./mkdir; fs.mkdir(mkdir, (err) => { if (err) { console.log(`mkdir ${mkdir} file faile...

    用戶83 評論0 收藏0
  • Node.js學習14——Process進程

    摘要:在中,只支持單線程。在這種場合下,如果能夠使用多進程,則可以為每個請求分配一個進程,從而可以更好地使用服務器端的資源。進程進程對象的屬性用于運行應用程序的可執(zhí)行文件的絕對路徑的版本號及其各依賴的版本號當前運行的平臺用于讀入標準輸入流的對象。 Process 在Node.js中,只支持單線程。但是在應用程序中,如果只使用單線程進行操作,從接收請求開始到返回響應為止的這段時間內可能存在很長...

    darry 評論0 收藏0
  • Node.js學習07——fs文件系統(tǒng)文件或目錄執(zhí)行其他操作

    摘要:如果打開一個文件的符號鏈接文件進行編輯,操作系統(tǒng)將自動打開符號鏈接中所指向的原文件進行編輯,如果打開一個目錄的符號鏈接文件進行文件的操作編輯或刪除操作,則操作系統(tǒng)將西東打開符號鏈接中所指向的原目錄并執(zhí)行相應的操作。 8. 對文件或目錄執(zhí)行的其他操作 8.1 修改文件名字或移動文件目錄fs.rename fs.rename(oldPath, newPath, callback(err...

    lordharrd 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<