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