file.open:異步模式打開文件
fs.open(path, flags[, mode], callback)
案例代碼如下:
var fs = require('fs');/*** 參數說明:* 1.path:要打開的文件的文件路徑* 2.flags:打開文件的方式 讀/寫* r:只讀方式打開文件,如果文件不存在會拋出異常* r+:讀寫模式打開文件,如果文件不存在會拋出異常* rs:以同步只讀的方式打開文件,如果文件不存在會拋出異常* rs+:以同步讀寫的方式打開文件,如果文件不存在會拋出異常* w:以寫文件的模式打開文件,如果文件不存在則創建文件,如果存在則清空文件* wx:以寫的模式打開文件,如果文件不存在則創建文件,如果存在拋出異常* w+:以讀寫文件的模式打開文件,如果文件不存在則創建文件,如果存在則清空文件* wx+:以讀寫的模式打開文件,如果文件不存在則創建文件,如果存在拋出異常* a:追加模式打開文件,如果不存在則創建文件* a+:讀寫和追加模式打開文件,如果不存在則創建文件* ax:追加模式打開文件,如果存在拋出異常* ax+:讀寫和追加模式打開文件,如果存在拋出異常* * 3.mode:設置文件的模式,讀寫執行(4-2-1)* 4.callback:打開文件的回調函數* function(err,fd){* //err:文件打開失敗的錯誤信息,如果成功則為null* //fd:被打開文件的標識* }*/
fs.open('test.txst','wx',function(err,fd){console.info(err);if(err){console.info('文件打開失敗...');}else{console.info('文件打開成功...');}
});
fs.openSync:同步模式打開文件
fs.openSync(path, flags[, mode])
具體參數用法請參考open方法。
案例代碼如下:
var fs = require('fs');var fd =fs.openSync('test.txt', 'r');
console.info(fd);
fs.read:異步讀取一個打開的文件
fs.read(fd, buffer, offset, length, position, callback)
具體參數用法請參考open方法。
案例代碼如下:
var fs = require('fs');fs.open('test.txt','r',function(err,fd){if(err){console.info('文件打開失敗...');}else{/*** 讀取文件* * fs.read(fd, buffer, offset, length, position, callback)* 1.fd:通過open方法成功打開的一個文件的返回句柄* 2.buffer:用于存放讀取內容的buffer對象* 3.offset:新的內容添加到buffer中的起始位置* 4.length:添加到buffer中的內容長度* 5.position:讀取的文件中的起始位置* 6.callback:讀取文件的回調函數* function(err, bytesRead, buffer){* //err:錯誤信息* //bytesRead:讀取的內容在buffer中的長度* //buffer:buffer對象* }* @type {Buffer}*/var bf = new Buffer(10);fs.read(fd,bf,0,4,null,function(err, bytesRead, buffer){console.info(err); // null or some errorconsole.info(bytesRead); // 4console.info(buffer); //buffer content});}
});
fs.readSync:同步模式讀取打開的文件
fs.readSync(fd, buffer, offset, length, position)
該方法以同步模式讀取打開的文件,并且返回了從文件中讀取的內容的長度。具體參數用法請參考read方法。
案例代碼如下:
var fs = require('fs');var bf = new Buffer(10);
var fd =fs.openSync('test.txt', 'r');
var len = fs.readSync(fd,bf,0,4,null);
console.info(len); // 4
console.info(bf); // buffer content
fs.rename:異步模式對文件或者文件夾重命名
fs.rename(oldPath, newPath, callback)
對文件或者文件夾進行重命名操作
案例代碼如下:
var fs = require('fs');/*** 對文件或者文件夾進行重命名操作* * fs.rename(oldPath, newPath, callback)** 1.oldPath:要進行重命名的文件* 2.newPath:要重命名的文件名稱* 3.callback:重命名的回調函數* function(err){* //err:錯誤信息* }* */
fs.rename('./srcFile.txt','./destFile.text',function(err){console.info(err);
});
注意點
- 當源文件不存在的時候回報錯
- 當新的文件名稱已存在會導致原來的那個文件丟失,不會報錯!!!!
fs.renameSync:同步模式對文件或者文件夾進行重命名
fs.renameSync(oldPath, newPath)
該方法以同步模式對文件或者文件夾進行了重命名,返回值為undefined。具體參數用法請參考rename方法。
案例代碼如下:
var fs = require('fs');fs.renameSync('./srcFile.txt','./destFile.text');
fs.stat:異步模式獲取文件信息
fs.stat(path, callback)
該方法主要用來獲取文件或者文件夾的信息,包括一些類型、時間相管的信息、文件大小等。
案例代碼如下:
var fs = require('fs');fs.stat('./src',function(err,stats){/**** stats.mode:* On Win32:* 16895 for a dir and 33206 for a file.* On Linux:* 16877 for a dir, 33188 for a file* */console.info("設備名:" + stats.dev);console.info("類型:" + stats.mode); //33188-文件、16877-文件夾console.info("被連接數目:" + stats.nlink);console.info("所有者的用戶id:" + stats.uid);console.info("所有者的組id:" + stats.gid);console.info("設備類型:" + stats.rdev);console.info("文件系統 IO 的塊大小:" + stats.blksize);console.info("號碼:" + stats.ino);console.info("大小:" + stats.size);console.info("所占據塊的數目:" + stats.blocks);console.info("上次訪問時間:" + stats.atime);console.info("上次修改時間:" + stats.mtime);console.info("上次改變時間:" + stats.ctime);console.info("創建時間:" + stats.birthtime);});
fs.statSync:同步模式獲取文件信息
fs.statSync(path)
該方法以同步模式獲取文件或者文件夾信息,返回一個stats對象。具體參數用法請參考stat方法。
案例代碼如下:
var fs = require('fs');var stats = fs.statSync('./src');
console.info("設備名:" + stats.dev);
console.info("類型:" + stats.mode); //33188-文件、16877-文件夾
console.info("被連接數目:" + stats.nlink);
console.info("所有者的用戶id:" + stats.uid);
console.info("所有者的組id:" + stats.gid);
console.info("設備類型:" + stats.rdev);
console.info("文件系統 IO 的塊大小:" + stats.blksize);
console.info("號碼:" + stats.ino);
console.info("大小:" + stats.size);
console.info("所占據塊的數目:" + stats.blocks);
console.info("上次訪問時間:" + stats.atime);
console.info("上次修改時間:" + stats.mtime);
console.info("上次改變時間:" + stats.ctime);
console.info("創建時間:" + stats.birthtime);