node.js—创建、删除、追加文件等方法汇总
<div class="cnblogs_code"><pre><span style="color: rgba(0, 128, 0, 1)">使用Node.js的fs模块必须在electron项目里</span></pre>
<pre><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> <br></span><em id="__mceDel"><span style="color: rgba(0, 128, 0, 1)"> 1. fs.stat检测是文件还是目录(目录 文件是否存在) </span></em></pre>
<pre><em id="__mceDel"><em id="__mceDel"><span style="color: rgba(0, 128, 0, 1)"> 2. fs.mkdir创建目录 (创建之前先判断是否存在)
3. fs.writeFile写入文件(文件不存在就创建,但不能创建目录)
4. fs.appendFile 写入追加文件
5.fs.readFile 读取文件
6.fs.readdir 读取目录
7.fs.rename 重命名
8. fs.rmdir删除目录
9. fs.unlink 删除文件
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> fs=require('fs'); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs是node.js的核心模块,不用下载安装,可以直接引入</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> fs.stat检测是文件还是目录fs.statSync()同步获取stats对象,通过返回值接收。</span>
fs.stat('html',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error,stats){
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}
console.log(</span>'文件:'+<span style="color: rgba(0, 0, 0, 1)">stats.isFile());
console.log(</span>'目录:'+<span style="color: rgba(0, 0, 0, 1)">stats.isDirectory());
})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.mkdirSync 创建文件---同步创建</span>
fs.mkdirSync(`D:/Rabbit3`);
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.mkdir创建文件---异步创建</span>
fs.mkdir('D:/Rabbit2',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error){
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}
console.log(</span>'创建目录成功'<span style="color: rgba(0, 0, 0, 1)">);
})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.appendFile 追加文件 </span>
fs.appendFile('D:/Rabbit2/123.txt','这是写入的内容\n',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error){
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}
console.log(</span>'写入成功'<span style="color: rgba(0, 0, 0, 1)">);
})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.writeFile写入文件(会覆盖之前的内容)(文件不存在就创建)utf8参数可以省略</span>
fs.writeFile('123.txt','你好nodejs 覆盖','utf8',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error){
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}
console.log(</span>'写入成功'<span style="color: rgba(0, 0, 0, 1)">);
})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.appendFile 追加文件</span>
fs.appendFile('123.txt','这是写入的内容\n',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error){
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}
console.log(</span>'写入成功'<span style="color: rgba(0, 0, 0, 1)">);
})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.readFile 读取文件</span>
fs.readFile('123.txt',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error,data){
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">console.log(data);//data是读取的十六进制的数据。也可以在参数中加入编码格式"utf8"来解决十六进制的问题;</span>
console.log(data.toString());<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">读取出所有行的信息</span>
<span style="color: rgba(0, 0, 0, 1)">})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.readdir 读取目录下第一级内容把目录下面的文件和文件夹都获取到。</span>
fs.readdir('html',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error,data){
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}
console.log(data);</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">data是数组类型,包含文件夹以及文件的名字(只有第一级目录内容)。拿到一个文件夹下面的所有目录</span>
<span style="color: rgba(0, 0, 0, 1)">})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.rename 重命名1.改名2.剪切文件(移动)</span>
fs.rename('html/index.html','html/news.html',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error){
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}
console.log(</span>'修改名字成功'<span style="color: rgba(0, 0, 0, 1)">);
})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.rmdir删除目录 rmdir 这个方法只能删除目录,不能删除文件</span>
fs.rmdir('abc目录',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error){
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}
console.log(</span>'删除目录成功'<span style="color: rgba(0, 0, 0, 1)">);
})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.unlink删除文件</span>
fs.unlink('index.txt',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error){
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}
console.log(</span>'删除文件成功'<span style="color: rgba(0, 0, 0, 1)">);
})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.createReadStream从文件流中读取数据,读取的文件比较大时建议用流的方式读取,文件比较大会多次读取。</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> fileReadStream = fs.createReadStream( 'data1.json'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">var</span> str = ''<span style="color: rgba(0, 0, 0, 1)">;
fileReadStream.on(</span>'data', (data) =><span style="color: rgba(0, 0, 0, 1)"> {
console.log(</span>"接收到" + data.length); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">文件比较大时,会多次读取,多次执行该回调函数</span>
str +=<span style="color: rgba(0, 0, 0, 1)"> data;
})
fileReadStream.on(</span>'end', () =><span style="color: rgba(0, 0, 0, 1)"> {
console.log(</span>" --- 结束 ---"<span style="color: rgba(0, 0, 0, 1)">);
console.log( str );
})
fileReadStream.on(</span>'error', (error) =><span style="color: rgba(0, 0, 0, 1)"> {
console.log(error)
})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.createWriteStream写入文件流</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> data= "我是从数据库获取的数据,我要保存起来"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">var</span> writerStream = fs.createWriteStream('D:/Rabbit3/123.txt'<span style="color: rgba(0, 0, 0, 1)">);
writerStream.write( data , </span>'UTF8'<span style="color: rgba(0, 0, 0, 1)"> );
writerStream.end();</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">标记文件末尾结束写入流,释放资源</span>
writerStream.on( 'finish',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">() {
console.log(</span>"写入完成。"<span style="color: rgba(0, 0, 0, 1)">);
});
writerStream.on( </span>'error',<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(error){
console.log(error.stack);
});
console.log(</span>"程序执行完毕"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">pipe 管道流</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> fs = require("fs"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">var</span> readerStream = fs.createReadStream( 'input.txt'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">var</span> writerStream = fs.createWriteStream( 'output.txt'<span style="color: rgba(0, 0, 0, 1)">);
readerStream.pipe( writerStream );
console.log(</span>"程序执行完毕"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fs.access 判断目录、文件是否存在(读写权限)</span>
<span style="color: rgba(0, 0, 255, 1)">var</span>fs = require('fs'<span style="color: rgba(0, 0, 0, 1)">);
fs.access(</span>'package.json',(err)=><span style="color: rgba(0, 0, 0, 1)">{
console.log(err </span>?'目录/文件不存在': '文件存在,可以进行读写');</em></em></pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/bearSky/p/11977030.html
頁:
[1]