node基礎_寫入文件


寫入文件

fs中提供了四種不同的方式將數據寫入文件
– 同步文件寫入
– 異步文件寫入
– 簡單文件寫入
– 流式文件寫入

同步文件寫入

//1,引入文件模塊
let fs=require("fs");
//2,打開文件
let result=fs.openSync("test.txt","w");

//3,同步往文件寫入內容
fs.writeSync(result,"今天天氣真好",6);

//4,關閉文件,如果不關閉,打開的文件會一直在內存里運行,會造成資源浪費。
fs.closeSync(result);

異步文件寫入

//1,引入文件模塊
let fs=require("fs");
//2,打開文件
fs.open("test.txt","w",function(error,fd){
    if(!error){
        //3,異步往文件寫入內容
        fs.write(fd,"今天天氣真好",function(err){
            if(!err){
                console.log("寫入成功");
            }
            //關閉打開的文件
            fs.close(fd,function(err2){
                console.log("文件關閉");                           
            });
        });
    }else{
        console.log(error);
    }
});

簡單文件寫入

簡單同步文件寫入

fs.writeFileSync(file, data[, options])

簡單異步文件寫入

fs.writeFile(file, data[, options], callback)
file:要操作的文件路徑
data:要寫入的數據。
options選項:可以對寫入進行一些設置,這個參數是可選參數。是一個對象,如{flag:"a"},不加默認是覆蓋寫入。
callback:當寫入完成后執行的回調函數。
如:

let fs=require("fs");

fs.writeFile("test2.txt","看我有沒有把你覆蓋掉",{flag:"a"},function(error){
    if(!error){
        console.log("寫入成功");
    }
});


流式文件寫入

往一個文件中寫入大量數據時,最好的方法之一是使用流。
同步、異步、簡單文件寫入都不適合大文件的寫入,性能較差,容易導致內存溢出。

fs.createWriteStream(path[, options]):可以創建一個可寫流
path:文件路徑
options:配置參數,可以不用寫,因為是帶中括號的。

//1,引入文件模塊
let fs=require("fs");

//創建一個可寫流
let ws=fs.createWriteStream("test3.txt");

//可以通過事件監聽流的open和close事件來監聽流的打開和關閉。
//on(事件字符串,回調函數):可以位對象綁定一個事件。
//once(事件字符串,回調函數):可以為對象綁定一個一次性的事件,該事件將會在觸發一次后自動失效。
ws.once("open",function(){
    console.log("流打開了");
});

ws.once("close",function(){
    console.log("流關閉了");
});

ws.write("今天天氣真晴朗,");//流寫入也是異步的。也就是這行代碼不會阻塞程序運行。
ws.write("我是中間人,");
ws.write("處處好風光。");

//關閉流
ws.close();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM