Author nodes:(题记)
node.js is an open-source,cross-platform JAVAScript runtime environment。
node.js是一个开源,跨平台的js运行环境
common commands(常用指令)
1、C:
enter hard disk
进入硬盘
2、cd 文件夹名
enter folder
进入文件夹
3、dir
review all of folders
查看所有的文件夹
4、dir /s
review all of files
查看所有的文件
5、node 文件名
start the file of javascript
启动js文件
Buffer
this can process binary data
buffer可以处理二进制数据
demo(样例)
// alloc
let a = Buffer.alloc(10)
console.log(a)
// allocUnsafe 包含旧的内存数据每次会更新
let b = Buffer.allocUnsafe(10)
console.log(b)
// from
let c = Buffer.from('hello')
console.log(c)
// toString()
console.log(c.toString())
processes and threads(进程和线程)
process is a procedure in computer.A process has at least one thread.
进程是在计算机的某一程序,至少有一个线程。
fs(file system文件系统)
'fs' module can read,write,add,delete file,
fs模块可以读,写,增,删文件
This is a built-in module in node.js
这是一个node.js的内置模块
demo(样例)
// 引入fs
const fs = require('fs')
// 写入文件
fs.writeFile('./今天.txt','今天很开心',err => {
if (err) {
console.log('写入失败!')
return
}
console.log('写入成功')
})
Synchronous and asynchronous(同步和异步)
Synchronous and asynchronous are different task.
同步和异步是不同的任务
they can describe task in tems of time.
他们可以以时间角度描述任务。
writeFile()与writeFileSync()
demo(样例)
// 引入fs
const fs = require('fs')
// 写入文件
fs.writeFile('./今天.txt','今天很开心',err => {
if (err) {
console.log('写入失败!')
return
}
console.log('写入成功')
})
// 我比err先执行吗?
console.log('我比err先执行吗?')
the code inside the above ‘writeFile’ function is a asynchronous.the rest is a Synchronous task.
writeFile函数里边的代码是异步任务,剩余是同步任务。
同步写入也是可以的,使用writeFileSync
// 引入fs
const fs = require('fs')
// 同步步写入文件
fs.writeFileSync('./今天.txt','今天很开心')
summary
‘writeFile’ function is a asynchronous task。'writeFileSync' function is a Synchronous task.
writeFile方法是一个异步任务。writeFileSync方法是一个同步方法。
appendFIle()与appendFileSync()
demo(样例)
// 引入fs
const fs = require('fs')
// 异步追加写入文件
fs.appendFile('./今天.txt','今天很开心',err =>{
if(err){
console.log('写入失败!')
return
}
console.log('写入成功!')
})
console.log('我先执行!')
// 引入fs
const fs = require('fs')
// 同步追加写入文件
fs.appendFileSync('./今天.txt',`\r\n昨天也很开心`)
extend content(扩展内容)
// 引入fs
const fs = require('fs')
// 同步追加写入文件
fs.appendFileSync('./今天.txt',`\r\n昨天也很开心`)
// writeFile()实现追加
fs.writeFile('./今天.txt','\r\n明天更美好',{flag:'a'},err => {
if (err) {
console.log('失败!')
return
}
console.log('成功!');
})
createWriteStream() 文件流写入
demo
// 引入fs
const fs = require('fs')
// 创建写入流对象
const ws = fs.createWriteStream('./今天.txt');
// 写入
ws.write('第一行\r\n');
ws.write('第二行\r\n');
ws.write('第三行\r\n');
ws.write('第四行\r\n');
// 关闭通道
ws.close();
extend content 延申 超级详细!!!node.js中读写文件方法总结
rename()
this function can change file name and .move file.
这个方法可以改变文件名和移动文件
demo(样例)
change file name
const { log } = require('console')
const fs = require('fs')
// 直接调用rename方法
fs.rename('./今天.txt','./新的今天.txt',err => {
if(err){
console.log('改名失败!');
return
}
console.log('改名成功!');
})
move file
const { log } = require('console')
const fs = require('fs')
// 直接调用rename方法
fs.rename('./新的今天.txt','../新的今天.txt',err => {
if(err){
console.log('移动失败!');
return
}
console.log('移动成功!');
})
remark :'renameSync()' funciton is a a synchronous task to change filename or remove file.
备注:'renameSync()'是一个改变文件名或者移动文件的同步任务
unlink()
this function can delete file.
这个方法可以删除文件
demo(样例)
const { log } = require('console')
const fs = require('fs')
// 直接调用unlink方法
fs.unlink('../新的今天.txt', err => {
if(err){
console.log('删除失败!');
return
}
console.log('删除成功!');
})
mkdir()/readdir()/rmdir()
demo(样例)
const { log } = require('console')
const fs = require('fs')
// 直接调用mkdir方法
fs.mkdir('./新的今天', err => {
if(err){
console.log('创建失败!');
return
}
console.log('创建成功!');
})
const { log } = require('console')
const fs = require('fs')
// 直接调用mkdir方法
fs.mkdir('./a/b/c',{recursive:true}, err => {
if(err){
console.log('创建失败!');
return
}
console.log('创建成功!');
})
const { log } = require('console')
const fs = require('fs')
// 直接调用readdir方法
fs.readdir('../node', (err,data) => {
if(err){
console.log('读取失败!');
return
}
console.log('读取成功!',data);
})
const { log } = require('console')
const fs = require('fs')
// 直接调用rmdir方法
fs.rmdir('./a', {recursive:true},(err) => {
if(err){
console.log('删除失败!');
return
}
console.log('删除成功!');
})
view file source information(查看文件资源信息)
demo(样例)
const { log } = require('console')
const fs = require('fs')
// 直接调用stat方法
fs.stat('./day1.js', (err,data) => {
if(err){
console.log('查看失败!');
return
}
console.log('查看成功!',data);
})
remark:you can use 'isFile()' function to check if this is a file. In addition,you can also use 'isDirectory' function to check if this is a directory
备注:你可以用isFile方法去检查这个是不是一个文件,另外,你也可以用isDirectory方法去检查这个是不是一个文件夹。
const { log } = require('console')
const fs = require('fs')
// 直接调用stat方法
fs.stat('./day1.js', (err,data) => {
if(err){
console.log('查看失败!');
return
}
console.log('查看成功!',data);
console.log('是文件吗?',data.isFile())
console.log('是文件夹吗?',data.isDirectory());
})
there is a small case to change file name in bulk.
这里有一个批量更改文件名的实例。
const { log } = require('console')
const fs = require('fs')
const filename = fs.readdirSync('./test',);
filename.forEach(i => {
let data = i.split('-')
let [num,name] = data
if (Number(num) < 10) {
num = '0' + num
}
let newName = num + '-' + name
fs.renameSync(`./test/${i}`,`./test/${newName}`)
})
后续添加。。。