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

 

posted @ 2017-05-18 01:02  lylooooo  阅读(2855)  评论(0编辑  收藏  举报