1. 程式人生 > >nodejs學習(一)讀檔案,寫檔案,檔案資訊

nodejs學習(一)讀檔案,寫檔案,檔案資訊

1、瀏覽器中的js全域性物件是window。
但是在node中,全域性物件是global。

2、process是node.js的一個物件,它代表當前node.js的程序。

process.nextTick(function() {
    console.log('next callback!');
})

console.log("nextTick was set");

nextTick,下一輪事件迴圈中呼叫。

3、fs是nodejs中讀取檔案的內建模組

非同步讀取:

var fs = require('fs');

fs.readFile('sample.txt', 'utf-8'
, function (err, data) { if (err) { console.log(err); } else { console.log(data); } });

Buffer型別和String型別轉換。

讀取二進位制流的檔案,如果不傳入”utf-8”檔案編碼,data引數就會返回一個Buffer物件。

轉換的方法:

var text = data.toString(“utf-8”);
var data = new Buffer(text,”utf-8”);
其中text就代表String,而data就代表Buffer物件。

同步讀取:

"use strict"

var fs = require("fs");

var data = fs.readFileSync("sample.txt","utf-8");

console.log(data);

寫入檔案:

"use strict"

var fs = require("fs");

var data = "mapbar_front 全棧"
fs.writeFile("output.txt",data,function(err){
    if(err){
        console.log(err);
    }else{
        console.log("file writes sucess!!"
) } })

獲取檔案資訊

"use strict"

var fs = require("fs");

var data = "hello world";
var text = fs.readFileSync("sample.txt","utf-8");
//text = JSON.parse(text);
data = text + data;
fs.writeFileSync("output.txt",data);

fs.stat("sample.txt",function(err,stat){
    console.log("isFile",stat.isFile());
    console.log("isDirectory",stat.isDirectory());
    if(stat.isFile()){
        console.log("file size",stat.size);
        console.log('birthtime',stat.birthtime);
        console.log('modified time',stat.mtime)
    }
})

stat是fs物件用於獲取檔案資訊的函式
stat有幾個原型屬性和方法。
分別是isFile(), isDirectory(), size, birthtime, mtime.

同步獲取檔案資訊的方法:

"use strict"
var fs = require("fs");
var info = fs.statSync("sample.txt");