1. 程式人生 > >nj10---文件讀取

nj10---文件讀取

-- 沒有 數據 mode 案例 ejs func 所有 地址

介紹:fs模塊是文件操作的封裝,它提供了文件的讀取,寫入,更名,刪除,遍歷目錄,鏈接POSIX文件系統操作。與其他模塊不同的是,fs模塊中所有的操作都提供了異步和同步兩個版本,例如讀取文件內容函數異步方法:readFile(),同步方法readFileSync()。
一、fs.readFile(filename,[encoding],[callback(err,data)])是最簡單的讀取文件的函數。
        參數:filename:讀取的文件名。
                    encoding     文件的字符編碼 ANSI
                    callback     回調函數提供兩個參數err和data,err表示有沒有錯誤發生,data是文件內容。如果指定了encoding,data是一個解析後的字符串,否則將會以buffer形式表示的二進制數據。
         案例:readFile.js
二、fs.readFileSync(filename,[encoding]) 
        同步讀取文件它棘手的參數和fs。readFile相同,而讀取到的文件內容會以函數返回值的形式返回,如果有錯誤發生,fs將拋出異常,你需要try和catch捕獲並處理異常
三、fs.open(path,flags,[mode],[callback(err,fd)])是POSIXopen函數的封裝,與C語言標準庫中的fopen函數類似,它接受兩個必選參數,
path為文件路徑,
flags可以為以下值:
    r:以讀取模式打開文件
    r
+:以讀寫模式打開文件 w:以寫入模式打開文件,如果文件不存在則創建 w+:以讀寫模式打開文件,如果文件不存在則創建 a:以追加模式打開文件,如果文件不存在則創建。 a+:以讀取追加模式打開文件,如果不存在則創建。 mode:用於創建文件時給文件指定權限,默認是0666,回調函數將會傳遞一個文件描述符fd 0666:文件權限值POSIX系統中對文件讀取和訪問權限的規範,通常用八進制數表示,如:0754標識文件所有者權限是7(讀,寫,執行),同組用戶權限是5(讀,執行)其他用戶的權限是4(讀)。 fd:文件描述是一個非負整數,表示操作系統內核為當前進程所維護的打開文件的記錄表索引。 四、fs.read(fd,buffer,offset,length,position,[callback(err,bytesRead,buffer)])是POSIX中read函數的封裝,相比readFile提供了更底層的接口。從指定的文件描述fd中讀取數據並寫入 fd:指定的文件描述 offset是buffer的寫入偏量值 buffer指向的緩存區對象。 length:讀取的字節數 position:文件讀取的起始數,如果為null,則從當前文件指針讀取。 回調函數傳遞err,bytesRead和buffer,分別標識讀取的字節數和緩沖區對象。 API地址:http:
//nodejs.org/api/fs.html
//引入fs模塊
 var fs=require(‘fs‘);
//調用讀取文件方法
fs.readFile(‘content.txt‘,function(err,data){
    if(err){
        console.log(err);
    }else{
        console.log(data);//<Buffer ef bb bf e6 e4 bb b6 e3 80 82>
    }
});
fs.readFile(‘content.txt‘,‘UTF-8‘,function(err,data){
    if(err){
        console.log(err);
    }
else{ console.log(data);//我是一個文本文件。 } }); try{ var data=fs.readFileSync(‘content.txt‘,‘UTF-8‘); console.log(data+"dddd");//我是一個文本文件。dddd }catch(e){ console.log(e) }
var fs=require(‘fs‘);
fs.open(‘content.txt‘,‘r‘,function(err,fd){
    if(err){
        console.log(err);
        return;
    }

    var buf=new Buffer(8);
    fs.read(fd,buf,0,8,null,function(err,bytesRead,buffer){
        if(err){
            console.log(err);
            return;
        }        
        console.log(‘bytesRead   ‘+bytesRead);
        console.log(buffer);
    });
})

nj10---文件讀取