node 文件操作fs

fs回调函数参数,错误优先

1. 同步版本异步版本

每个方法都有对应的同步版本和异步版本,同步不需要加回调函数,异步需要加回调函数

同步版本 mkdirSync

异步版本 mkdir

3. 文件读取
const fs = require('fs');

// 只能读取体积小的文件
fs.readFile('./hello.txt', (err, data) => {
    if (err) {
        console.log(err)
    } else {
    // buffer 转字符串  toString()
        console.log(data.toString())
    }
})
5. 写入文件(写入并覆盖)
const fs = require('fs');

// 所有类型都会隐式转换为字符串
fs.writeFile('./hello.txt', 'hello node', (err) => {
    if (err) {
        console.log(err)
    } else {
        console.log('数据写入成功')
    }
})

图片,音频,视频…复制

const fs = require('fs');
// 先读后写
fs.readFile('C:/Users/Administrator/Desktop/正方体/m3.jpg', (err, data) => {
    if (err) {
        console.log(err)
    } else {
        // console.log(data.toString())
        fs.writeFile('./1.jpg', data, (err) => {
            console.log('写入成功')
        })
    }
})
6. 创建文件夹
const fs = require('fs');
// 文件名,回调函数
fs.mkdir('css', (err, data)=> {
    console.log('111')
})
7. 追加文件内容
const fs = require('fs');

fs.appendFile('./hello.txt', 'hello node', (err) => {
    if (err) {
        console.log(err)
    } else {
        console.log('数据写入成功')
    }
})
8. 判断文件还是目录
var fs = require('fs');
// 判断index.js是文件还是目录
fs.stat('index.js', function(err, data) {
	// 判断是否为文件(是返回true 否则false)
    console.log(data.isFile())
    // 判断是否为目录
    console.log(data.isDirectory())

})
9. 读取目录
const fs = require('fs');
// 文件夹路径,回调函数
fs.readdir('./', (err, fileList)=> {
        if(err){
        	console.log(err)
        }else{
        	console.log(fileList)
        }
    })
[
  'css',
  'hello.txt',
  'index.html',
  'index.js',
  'spider.jpg',
  'url.js'
]
10. 重命名
var fs = require('fs');
// 重命名前文件名,重命名后文件,回调函数
fs.rename('./hello.txt', './node.txt', function(err, data) {
    console.log(111);
})

11. 删除文件
const fs = require('fs');

fs.unlink('./node.txt', (err)=>{
    console.log('1111')
})
11. 删除文件夹
const fs = require('fs');

fs.rmdir('./node', (err)=>{
    console.log('1111')
})
12. 读取文档流
var fs = require('fs');
// 流的方法读取文件
var readStream = fs.createReadStream('input.txt')

var str = '';

// 读取数据流
readStream.on('data', function(chunk) {
        str += chunk
    })
    // 读取数据完成
readStream.on('end', function(chunk) {
        console.log(str);

    })
    // 读取数据 失败
readStream.on('error', function(err) {
    console.log(err);

})
13. 写入文档流
var fs = require('fs');

var data = '数据\n'
var writeStream = fs.createWriteStream('output.txt')

// 循环写入100次
for (var i = 0; i < 100; i++) {
    writeStream.write(data, 'utf-8')
}
// 写入最后终止
writeStream.end();
// 结束写入
writeStream.on('finish', function() {
    console.log('success')
})

writeStream.on('error', function(error) {
    console.log('error')
})
14. 管道流(内容从一个文件转移到另一个文件)
var fs = require('fs');

// 读取文件流
var readStream = fs.createReadStream('input.txt')

// 写入文件流
var writeStream = fs.createWriteStream('output.txt')

// 读取到写入
readStream.pipe(writeStream)

console.log('success')
15. 例子

创建文件文件夹

const fs = require('fs');

let fileList = [{
        name: 'css',
        type: 'dir'
    },
    {
        name: 'js',
        type: 'dir'
    },
    {
        name: 'images',
        type: 'dir'
    },
    {
        name: 'index.html',
        type: 'file'
    }
]

if (!fs.existsSync) {
    fileList.forEach((item) => {

        if (item.type === 'dir') {
            fs.mkdirSync(item.name)
        } else {
            fs.writeFileSync(item.name, '')
        }

    })
} else {
    console.log('文件存在')
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值