Buffer/fs文件/fs流讀寫方式/fs管道方式/鏈式流/path路徑


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);
 
  1. 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM