文件转换-----(类型,格式)


第一步 读取文件

第二步 文件转换

第三步 重新写入文件

案例 将.md文件转换为 HTML 文件

.md文件内容

# Markdown 文件的一级标题
startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。
正文段落部分正文段落部分正文段落部分
## Markdown 文件的二级标题
正文段落部分正文段落部分正文段落部分
正文段落部分正文段落部分正文段落部分
### Markdown 文件的三级标题
正文段落部分正文段落部分正文段落部分
正文段落部分正文段落部分正文段落部分

代码演示(js文件内容)

//1.读取文件
const fs = require('fs')
const path = require('path')
 
fs.readFile(path.join(__dirname,'txt.md'), 'utf8', (err, data) => {
    //2.转换文件
    const arr = data.split('\n')
    // console.log(arr);
    let bigArr = ''
    arr.forEach(item => {
        if (item.startsWith('# ')) {
            const newStr = '<h1>'+ item.replace('# ', '') +'</h1>'
            bigArr +=newStr
        }else if (item.startsWith('## ')) {
            const newStr = '<h2>'+ item.replace('## ', '') +'</h2>'
            bigArr +=newStr
        }else if (item.startsWith('### ')) {
            const newStr =  '<h3>'+ item.replace('### ', '') +'</h3>'
            bigArr += newStr
        } else {
            const newStr = '<p>'+ item + '</p>'
            bigArr +=newStr
        }
    })

    //3.写出HTML文件到指定目录中
    fs.writeFile(path.join(__dirname,'txt.html'),bigArr,err => console.log('err',err))
})

然后在指定目录下打开cmd,执行 node 文件名.js即可.最后得到HTML文件的内容如下:

<h1>Markdown 文件的一级标题</h1>
<p>startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。 </p>
<p>正文段落部分正文段落部分正文段落部分</p>
<h2>Markdown 文件的二级标题</h2>
<p>正文段落部分正文段落部分正文段落部分</p>
<p>正文段落部分正文段落部分正文段落部分</p>
<h3>Markdown 文件的三级标题</h3>
<p>正文段落部分正文段落部分正文段落部分</p>
<p>正文段落部分正文段落部分正文段落部分</p>

案例(2) 在json中添加数据

data.json中的数据:

[{"name":"小王"},{"name":"小李"}]

最终要实现的结果:

[{"name":"小王"},{"name":"小李"},{"name":"小张"}]

执行yourfile.js,在data.json添加一条数据
js中代码如下:

const fs = require('fs')
const path = require('path')
// 1.读取数据
fs.readFile(path.join(__dirname,'./data.json'), 'utf8', (err, data) => {
    if (err) {
        console.log('err', err)
        return
    }
    //2.转换数据
    let re = { "name": "小张" }
    let str = JSON.parse(data)
    str.push(re)
    // console.log(str);
    //3.写入数据
    fs.writeFile(path.join(__dirname,'./data.json'), JSON.stringify(str), (err) => {
        if (err) {
            console.log('err', err)
            return
        } else {
            console.log('添加数据成功');
        }
    })
})
案例(3) 将txt文本数据转换为json对象

a.txt中的数据

小王,19
小李,20
小陈,21

通过执行a2b.js 得到

{
  "list":[
  		{"name":"小王","age":19},
    	{"name":"小李","age":20},
    	{"name":"小陈","age":21}
  ],
 	"average":20,
  "total":3
}

js代码如下:

const fs = require('fs')
const path = require('path')
//读取文件
fs.readFile(path.join(__dirname, 'a.txt'), 'utf8', (err, data) => {
    
    //2.数据转换
    let arr = data.split('\n')
    //年龄和
    let sum = 0
    //平均年龄
    let avg = 0
    let list = []
    arr.forEach(item => {
        let name = item.substring(0, 2)
        let age = item.substring(3, 6)
        list.push(`{"name":"${name}","age":${age}}`)
        sum = sum + Number(age) 
    })
    avg = sum/arr.length
    let js = `
        {
            "list":[
                  ${list}
            ],
            "average":${avg},
            "total":${arr.length}
          }
        `
    console.log(list);

    //3.写入数据
    fs.writeFile(path.join(__dirname, 'b.json'), js, err => {
    //err 为null 表示转换成功
        if (err) {
            console.log('err', err)
            return
        } else {
            console.log('数据转换成功');
        }
    })
})
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值