第一步 读取文件
第二步 文件转换
第三步 重新写入文件
案例 将.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('数据转换成功');
}
})
})