1澜公、fs模塊
readFile
讀取文件:
var fs = require('fs'); // 引入fs模塊
// 使用toString()
fs.readFile('./text.txt', function(err, data) {
// 讀取文件失敗/錯(cuò)誤
if (err) {
throw err;
}
// 讀取文件成功
console.log('toString: ', data.toString());
});
// 設(shè)置編碼格式
fs.readFile('./text.txt', 'utf-8', function(err, data) {
// 讀取文件失敗/錯(cuò)誤
if (err) {
throw err;
}
// 讀取文件成功
console.log('utf-8: ', data);
});
writeFile
寫(xiě)文件:
var fs = require('fs'); // 引入fs模塊
// 寫(xiě)入文件內(nèi)容(如果文件不存在會(huì)創(chuàng)建一個(gè)文件)
// 傳遞了追加參數(shù) { 'flag': 'a' }
fs.writeFile('./test2.txt', 'test test', { 'flag': 'a' }, function(err) {
if (err) {
throw err;
}
console.log('Saved.');
// 寫(xiě)入成功后讀取測(cè)試
fs.readFile('./test2.txt', 'utf-8', function(err, data) {
if (err) {
throw err;
}
console.log(data);
});
});
flag
傳遞的值,r
代表讀取(read)文件喇肋,w
代表寫(xiě)入(write)文件坟乾,a
代表追加(append)寫(xiě)入文件
fs.read()/fs.write()
:讀寫(xiě)文件
var fs = require('fs'); // 引入fs模塊
// 打開(kāi)文件
fs.open('./testread.txt', 'r', function(err, fd) {
if (err) {
throw err;
}
console.log('open file success.');
var buffer = new Buffer(255);
// 讀取文件
fs.read(fd, buffer, 0, 10, 0, function(err, bytesRead, buffer) {
if (err) {
throw err;
}
// 打印出buffer中存入的數(shù)據(jù)
console.log(bytesRead, buffer.slice(0, bytesRead).toString());
// 關(guān)閉文件
fs.close(fd);
});
});
備注:fs.open
打開(kāi)文件后會(huì)有一個(gè)屬于這個(gè)文件的fd
(文件描述符)迹辐,將這個(gè)參數(shù)從回調(diào)函數(shù)里面?zhèn)鞒鰜?lái),后面的read
,write
和close
都需要用到這個(gè)fd
去操作相應(yīng)的文件甚侣。
fs.mkdir(path, [mode], callback)
創(chuàng)建目錄:
var fs = require('fs'); // 引入fs模塊
// 創(chuàng)建 newdir 目錄
fs.mkdir('./newdir', function(err) {
if (err) {
throw err;
}
console.log('make dir success.');
});
fs.readdir(path, callback)
:讀取目錄:
var fs = require('fs'); // 引入fs模塊
fs.readdir('./newdir', function(err, files) {
if (err) {
throw err;
}
// files是一個(gè)數(shù)組
// 每個(gè)元素是此目錄下的文件或文件夾的名稱(chēng)
console.log(files);
});
fs模塊總結(jié):
1右核、學(xué)習(xí)資料鏈接:https://www.shiyanlou.com/courses/running
2、使用中查看相應(yīng)API:https://www.shiyanlou.com/courses/running