// nodejs提供的系统API模块(文件模块、http网络模块),这些API都是封装的独立的模块,可以直接引入使用
// nodejs除了官方提供的API模块之外,还有非官方提供的第三方模块,可以先下载在使用
// fs模块 file system 文件系统模块,提供文件的操作功能,增删改查
// 导入fs模块后,返回的一个对象,对象中包含了很多函数,这些函数都是用于操作文件
var fs = require("fs")
//console.log(fs)
// fs.writeFileSync("") 用于将一段文本写入一个文件,如果目标文件不存在,会先创建文件,让后将内容写入。如果文件存在,直接将内容写入文件,会把文件原来的内容覆盖掉
// fs.writeFileSync("./123.txt", "asdfg")
// 1.指定的文件 2.写入的内容 3.写入之后回调的函数(err参数)
// fs.writeFile("./123.txt", "这是不带sync的函数", function(err){
// // err 如果写入成功,err就是null值
// // 如果写入失败,err就是失败原因
// if (err){
// console.log("执行写入操作失败", err)
// }else{
// console.log("执行写入成功!")
// }
// })
// fs函数中,都分为两个版本sync(同步版本)和async(异步版本)
// 同步函数版本,代码是阻塞状态的,直到函数中的代码执行完成之后,才能继续向下执行代码
// 异步函数执行时,函数中的代码会在后台执行,不会阻塞当前代码,当前代码会立刻向下执行,在异步函数中都会有一个回调函数,在异步函数执行完成之后调用,通知程序,函数中的任务已经完成了
// input output IO操作
// 为什么文件操作要有异步版本?
// 文件操作函数,耗时是不稳定的,磁盘读取速度,读写内容的大写,都会影响到任务耗时,如果耗时的任务写成同步版本,那会造成线程阻塞,导致程序卡死一段时间。所以像这类的任务,可以写成异步任务,避免线程卡死
// 先下载->再转码->再播放 比较适合使用同步任务
// 定时器也是一个异步任务
// setTimeout(function(){
// console.log("定时器也是一个异步任务!")
// }, 2000)
//
// console.log(123)
// console.log(123)
// console.log(123)
// fs.readFileSync() 同步版,读取文件内容方法
// 参数:文件路径
// var content = fs.readFileSync("./123.txt")
// 函数返回 Buffer类 缓存对象, 使用toString()转换为字符串
// console.log(content.toString())
// 异步版本读取文件
// 1.文件路径
// 2.读取完成后,回调的函数 参数1 错误信息 参数2 读取的数据
// fs.readFile("./123.txt", function(err, data){
// if (err){
// console.log("读取文件失败!", err)
// }else{
// console.log("读取成功:",data.toString())
// }
// })
// fs.appendFileSync() 在指定的文件末尾添加新内容,如果文件不存在,会先创建文件,再添加文件
// \n 表示换行符
// fs.appendFileSync("./123.txt", '\n')
// fs.appendFileSync("./123.txt", "hello")
// fs.appendFile("./123.txt", "异步版函数添加的内容", function(err){
// if (err){
// console.log("写入内容失败:",err)
// }else{
// console.log("写入成功!")
// }
// })
// ----------------------------------------------------------
// fs.mkdir() make directory 创建一个文件,参数1就是要创建的文件夹路径,参数2回调函数
// fs.mkdir("./abc", function(err){
// if (err){
// console.log("创建文件夹失败!",err)
// }else{
// console.log("创建成功!")
// }
// })
// 拷贝复制文件
// fs.copyFile() 复制文件
// 1.要复制的文件路径 2.目标路径
// fs.copyFile("./123.txt", "./abc/123.txt" ,function(err){
// if (err){
// console.log("复制失败:",err)
// }else{
// console.log("复制成功")
// }
// })
//
// fs.unlink() 删除文件
fs.unlink("./abc/123.txt", function(err){
if (err){
console.log("删除失败:",err)
}else{
console.log("删除成功!")
}
})
//