Node.js (三)FS文件模块

  • 此文章主要记录演示 fs 文件流操作demo


var fs=require('fs');
// 1、判断是文件、还是文件夹;
fs.stat('html',function(err,stats){
    console.log(stats.isDirectory());// 判断文件
    console.log(stats.isFile());// 文件夹
    if(err){
        console.log(erro);
        return false;
    }
});

// 2、创建文件 mkdir();参数1:创建目录名;参数2:回调函数

fs.mkdir('css',function(err){

})

// 3、 写入文件 参数1:写入文件名;参数2:写入内容;参数3:设置字符集,可以省略不写;参数4:回调函数
// 参数1 文件存在进行覆盖,不存在自动创建
fs.writeFile('t.text','Hello world node.js','utf8',function(err){

});

// 4、在文件中追加内容  fs.appendFile
fs.appendFile('t1.text','这里写入内容',function(err){

})

// 5、读取文件  fs.readFile 参数1:读取文件名;参数2:回调函数    \
// 回调函数  参数1:错误日志;参数2:读取内容
fs.readFile('t1.text',function(err,data){
    console.log(data.toString());
})

// 6、读取文件下的目录 fs.readddir
fs.readdir('html',function(err,data){
    console.log(data)
})
// 重命名文件或者目录的名称  fs.rname;参数1:需要更改的文件路径;参数2:更改后的文件名;err,更改失败返回

fs.rename('html/index.html','html/a.html',function(err){

})
// rname 剪切 参数1:当前目录;参数2:新目录
fs.rename('html/styles.css','html/css/style.css',function(err){

})
// 7、删除目录 fs.rmdir;注:如果当前目录下存在文件、目录不能直接删除
fs.rmdir('t',function(err){

})

// 8、删除文件 fs.unlink
fs.unlink('html/css/style.css',function(err){

})

  • 读取文件下面的文件夹,并且打印


var fs = require('fs');

// 1、判断服务器上有么有 upload 目录,没有创建这个目录
fs.stat('upload',function(err,stats){
    if(err){
        fs.mkdir('upload',function(err){
            if(err){
                console.log(err);
            }
            console.log('创建成功')
        })
        return false;
    }else{
        console.log('目录已经存在')
        console.log(stats.isDirectory());
    }
})

//2、找到 html 目录下面的所有目录,并打印
var arr = [];
fs.readdir('html',function(err,files){
    console.log(files.length)
    if(err){
        console.log(err);
        return false;
    }else{
        (function getFile(i){

            if(i==files.length){  //当前循环次数等于 所读文件长度,跳出循环
                console.log(arr);
                return false;

            }
            fs.stat('html/'+files[i],function(error,stats){

                if(stats.isDirectory()){ // 判断是文件

                    arr.push (files[i]);  // 是文件保存
                }
                //递归掉用
                getFile(i+1);
            })
        })(0)
    }

    // console.log('---'+arr);
})


// js 异步执行
// for(var i=0;i<3;i++){
//     setTimeout(function(){
//         console.log(i)
//     },100)
//  }
  • 文件的读取、写入、管道流操作
var fs=require("fs");

var str ="通过写入流,将数据写入到文件中";

// 以文件流的方式写入数据
var writeStream = fs.createWriteStream('123.txt')

writeStream.write(str,'utf8');

//  标记写入完成
writeStream.end();

writeStream.on('finish',function(){
	console.log('写入完成');
})
// 写入失败
writeStream.on('error',function(){
	console.log('写入失败');
})

//  读取文件内容,写入到另一个文件中
var fs=require('fs');

var readerStream = fs.createReadStream('t.txt');

var writeStream = fs.createWriteStream('123.txt');

// 通过pipe 管道方式读取数据保存到另一个文件
readerStream.pipe(writeStream);

console.log('写入成功')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值