1 buffer是什么?可以理解成類似數組的東西 * 2 作用:用來存二進制數據 * 3 如何使用? */ /** * 如何使用? * 1 創建buffer的方法 */ //1通過new的形式 創建一個對象出來 里面傳一個參數 具體的數字 表示創建一個多少字節的buffer var buff = new Buffer(10); console.log(buff); //2也是通過new的形式 里面可以傳數組 表示已經把數據放進去了 var buff2 = new Buffer([1,2,3,4]); console.log(buff2); //傳字符串 var buff3 = new Buffer("www.baidu.com"); console.log(buff3); //操作 讀 寫 // 3 寫入內容 var buff5 = new Buffer(256); console.log(buff5); buff5.write('www.runoob.com','utf-8'); console.log(buff5); //4 讀取buffer的內容 console.log(buff5.toString()); //5 copy 拷貝(復制粘貼) var buff6 = new Buffer([4,5,6,7,8,9]); var buff7 = new Buffer([1,2,3]); // 把buff7 拷貝給buff6 buff7.copy(buff6); console.log(buff6);
- fs文件基本操作
1.1. fs模塊
var fs = require("fs");//fs 系統文件模塊,對文件進行操作.
Node.js 文件系統(fs 模塊)模塊中的方法均有異步和同步版本,例如讀取文件內容的函數有異步的 fs.readFile() 和同步的 fs.readFileSync()。
1.2. 文件讀取
var fs = require("fs");
// 異步讀取
fs.readFile('input.txt', function (err, data) {
if (err) {
return console.error(err);
}
console.log("異步讀取: " + data.toString());
});
// 同步讀取
var data = fs.readFileSync('input.txt');
console.log("同步讀取: " + data.toString());
console.log("程序執行完畢。");
1.3. 文件信息
語法
以下為通過異步模式獲取文件信息的語法格式:
fs.stat(path, callback)
參數
參數使用說明如下:
path - 文件路徑。
callback - 回調函數,帶有兩個參數如:(err, stats), stats 是 fs.Stats 對象。
fs.stat(path)執行后,會將stats類的實例返回給其回調函數。可以通過stats類中的
提供方法判斷文件的相關屬性。例如判斷是否為文件:
var fs = require('fs');
fs.stat('./my.txt', function (err, stats) {
console.log(stats.isFile()); //true
});
1.4. fs寫文件
語法
以下為異步模式下寫入文件的語法格式:
fs.writeFile(filename, data[, options], callback)
如果文件存在,該方法寫入的內容會覆蓋舊的文件內容。
參數
參數使用說明如下:
path - 文件路徑。
data - 要寫入文件的數據,可以是 String(字符串) 或 Buffer(流) 對象。
options - 該參數是一個對象,包含 {encoding, mode, flag}。默認編碼為 utf8, 模式為 0666 , flag 為 'w'
callback - 回調函數,回調函數只包含錯誤信息參數(err),在寫入失敗時返回。
實例
接下來我們創建 file.js 文件,代碼如下所示:
var fs = require("fs");
console.log("准備寫入文件");
fs.writeFile('input.txt', '我是通過寫入的文件內容!', function(err) {
if (err) {
return console.error(err);
}
console.log("數據寫入成功!");
});
1.5. fs刪除文件
語法
以下為刪除文件的語法格式:
fs.unlink(path, callback)
參數
參數使用說明如下:
path - 文件路徑。
callback - 回調函數,沒有參數。
實例
var fs = require("fs");
console.log("准備刪除文件!");
fs.unlink('./my.txt', function(err) {
if (err) {
return ;
}
console.log("文件刪除成功!");
});
1.6. fs獲取目錄中的文件
//獲取當前目錄下面所有的文件及文件夾
fs.readdir(".",function(err,files){
console.log(files);
});
1.7. fs刪除空文件夾
語法
以下為刪除文件的語法格式:
fs.rmdir(path, callback)
參數
參數使用說明如下:
path - 文件夾路徑。
callback - 回調函數,沒有參數。
var fs = require(“fs”);
fs.rmdir('./aaa', function(err) {
if (err) {
return ;
}
console.log("文件夾刪除成功!");
});
/** * Created by Administrator on 2016/10/29. */ /** * node 里面有個特點 同步(readFileSync) 和異步(方法名稱 readFile) * 特點: 異步方法 通常都有回調 * 1 引入模塊 */ var fs = require('fs'); // // //讀取文件 同步 異步 // var rs = fs.readFileSync('./data/01','utf-8'); // console.log(rs); // //異步方法 // fs.readFile('./data/youguo3.jpg',function (err,data) { // if(err){ // console.log("文件讀取錯誤"); // }else { // console.log(data); // } // }); // // 文件相關信息 // fs.stat('./data',function (err,stats) { // console.log(stats.isFile()); //isFile() 判斷是否是文件 如果是文件 返回true 不是返回false // }); // // //把內容寫入到文件里面 // //同步和異步 // //同步寫入 第一個參數 待寫入文件的路徑 第二個參數 內容 第三個參數 其他的選項 // // 注意: 寫入文件內容的時候 如果找不到路徑 默認創建 // fs.writeFileSync('./data/02.js','地上鞋兩雙'); // fs.writeFile('./data/03.js','天王蓋地虎',function (err) { // if(err){ // console.log("文件寫入錯誤"); // }else{ // console.log("文件寫入成功"); // } // }); // // // // 總結: 讀取文件 寫入文件 文件的信息 文件的整體刪除 文件夾的刪除 讀取文件夾里面的內容 // // 文件刪除 // fs.unlink('./data/444',function (err) { // if (err) { // console.log("文件刪除失敗!"); // return ; // } // console.log("文件刪除成功!"); // }); //讀取目錄 // fs.readdir('./data',function (err,files) { // console.log(files); //數組 // for(var i = 0;i<files.length;i++){ // fs.unlink('./data/'+files[i]); // } // }) // 如果說要去刪除一個文件夾 的時候 1 把所有這個文件夾下面的內容都先讀取出來 刪掉 2 刪掉當前的空的文件夾 // fs.rmdirSync('./data/a'); // 復制文件 寫個函數 可以刪除文件夾 // function copy(src,target) { // var fs = require('fs'); // //1 先把 被復制的圖片內容 讀取 // fs.readFile(src,function (err,data) { // if(err){ // console.log("復制錯誤"); // }else{ // //2 把這個內容再寫入到target // fs.writeFileSync(target,data); // } // }) // } //copy('./data/youguo3.jpg',"./data/xxx2.jpg"); //刪除文件夾 function delDir(delPath) { var fs = require('fs'); //1 先讀取出這個目錄下的所有文件 獲取到一個數組 readdir var files = fs.readdirSync(delPath); //遍歷數組 for(var i=0;i<files.length;i++){ //拼路徑 判斷是不是文件夾 是刪除 var path = delPath + "/"+files[i]; var stats = fs.statSync(path); // 判斷是不是文件夾 if(stats.isFile()){ fs.unlinkSync(path); }else{ delDir(path); } } fs.rmdirSync(delPath); } delDir('./data');
fs 文件模塊 ---> 可以操作文件 讀/寫文件的內容 var fs = require('fs'); 讀: fs.readFile(路徑,'utf-8',回調函數) //異步方法 var data = fs.readFileSync() 同步方法 流的方式: 創建可讀流 var readStream = fs.createReadStream(文件路徑) 流的方式和讀文件的方式不同: readFile這種形式 一次把所有的內容都讀出來 流的形式 把數據分塊 一點一點的讀 寫: fs.writeFile(路徑,'utf-8',回調函數) //異步方法 var data = fs.writeFileSync() 同步方法 流的方式: 創建可讀流 var writeStream = fs.createWriteStream(文件路徑) 操作文件和文件夾 刪除文件: fs.unlink 刪除空文件夾: fs.rmdir 讀取文件的信息 fs.stat 讀取目錄信息 fs.readdir 學習api(某個語言或者框架的方法):最低的要求要知道有這個功能--> 這個功能的名字-->對應的用法 管道:出現的原因 讀寫的速度不同步 pipe() 1 創建一個可讀流 2 創建一個可寫流 3 可讀流.pipe(可寫流) 賬號設置里面需要填寫的內容 1 數據庫名稱 root 2 數據庫密碼 root 當前安裝的系統的管理用戶 phpcms 當前安裝的系統的密碼:默認phpcmns 郵箱 dads@sina.com