Node1 自动创建与Buffer

自动化建文件夹文件

const path = require('path')
const fs = require('fs')

let root = `D:\\hh`
let fileContent = `ddd`

let initData = {
    projectName: 'mydemo',
    data: [
        { name: 'img', type: 'dir' },
        { name: 'css', type: 'dir' },
        { name: 'js', type: 'dir' },
        { name: 'index.html', type: 'file' },
    ]
}

// 创建项目根路径  回调方法中建子文件和子目录
fs.mkdir(path.join(root, initData.projectName), (err) => {
    if (err) return;
    // 创建子目录和文件
    initData.data.forEach((item) => {
        if (item.type == 'dir') {
            // 创建子目录
            fs.mkdirSync(path.join(root, initData.projectName, item.name))
        } else if (item.type == 'file') {
            // 创建文件并写入内容
            fs.writeFileSync(path.join(root, initData.projectName, item.name), fileContent)
        }
    })
})

Buffer基本操作

/*
	Buffer 是字节数组
	1、 构造函数
	2、 静态方法
	3、 实例方法
*/

// 实例化Buffer对象
// let buf = new Buffer(5)  过时
const buf = Buffer.alloc(5)

const bf1 = Buffer.from('hello','utf8') // 字符转16进制 默认编码就是utf8
const bf2 = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72])
console.log(bf1)
console.log(bf2.toString())

const bufzg = Buffer.from('中国') // 中文字符utf8 3个字节一个字符 所以是6
console.log(Buffer.byteLength(bufzg))

const bf3 = Buffer.concat([bf1,bf2]) // 拼接两个Buffer
console.log(Buffer.byteLength(bf3)) 

// 向buffer中写入内容
let bf_1 = Buffer.alloc(5)
bf_1.write('hello')
console.log(bf_1)  

// slice 截取新的buffer对象
let bf_2 = Buffer.from('hello')
let bf_3 = bf_2.slice(1,4)
console.log(bf_3.toString())

// JSON.stringify 会自动调用toString()