1. 程式人生 > >Node.js——fs檔案模組

Node.js——fs檔案模組

//檔案模組   核心模組,所以直接用require匯入就行
var fs=require("fs");

//檔案操作:讀
//檔案路徑  開啟的方式(讀 r / 寫 w)  [許可權]-可有可無  回撥函式——非同步請求
//fs.open(path, flags[, mode], callback)
// path - 檔案的路徑。
// flags - 檔案開啟的行為。具體值詳見下文。
// mode - 設定檔案模式(許可權),檔案建立預設許可權為 0666(可讀,可寫)。
// callback - 回撥函式,帶有兩個引數如:callback(err, fd)。
fs.open("a1.txt","r",function (err,fd) {
    console.log(err);
    console.log(fd);    //開啟這個檔案的一個標識,這個標識在一個程式裡面是唯一的
    if (err){
        console.log("檔案開啟失敗");
    }else {
        console.log("檔案開啟成功");
    }
});

//同步請求
var fd=fs.openSync("a1.txt","r");
console.log(fd);

console.log("看看誰先輸出");

fs.open("a1.txt","r",function (err,fd) {
    //發現,累加了
    console.log("再次輸出:"+fd);
});

//讀取內容
fs.open("a1.txt","r",function (err,fd) {
    if (!err){
        //跟上面對應,buffer專門用來存放二進位制資料的快取區  開始位置  長度  讀取檔案的起始位置  回撥
        //fs.read(fd,buffer,offset,length,position,callback)
        var buffer=new Buffer(6);   //長度
        console.log(buffer);
        fs.read(fd,buffer,0,6,0,function () {
            console.log(buffer);
            console.log(buffer.toString("utf-8"));
        })
    }
});
//獲取檔案資訊
//fs.stat(path, callback)
//path - 檔案路徑。
// callback - 回撥函式,帶有兩個引數如:(err, stats), stats 是 fs.Stats 物件。
fs.stat('a1.txt', function (err, stats) {
    if (err) {
        return console.error(err);
    }
    console.log(stats);
    console.log("讀取檔案資訊成功!!!");
});