经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTMLCSS » HTML5 » 查看文章
Node.js——fs模块(文件系统),创建、删除目录(文件),读取写入文件流
来源:cnblogs  作者:张志宽小迷弟  时间:2018/10/29 9:51:10  对本文有异议
  1. 1 /*
  2. 2 1. fs.stat 检测是文件还是目录(目录 文件是否存在)
  3. 3 2. fs.mkdir 创建目录 (创建之前先判断是否存在)
  4. 4 3. fs.writeFile 写入文件(文件不存在就创建,但不能创建目录)
  5. 5 4. fs.appendFile 写入追加文件
  6. 6 5. fs.readFile 读取文件
  7. 7 6. fs.readdir 读取目录
  8. 8 7. fs.rename 重命名
  9. 9 8. fs.rmdir 删除目录
  10. 10 9. fs.unlink 删除文件
  11. 11 */
  12. 12
  13. 13 var fs=require('fs'); //fs是node.js的核心模块,不用下载安装,可以直接引入
  14. 14
  15. 15 //1. fs.stat 检测是文件还是目录 fs.statSync()同步获取stats对象,通过返回值接收。
  16. 16 fs.stat('html',function(error,stats){
  17. 17 if(error){
  18. 18 console.log(error);
  19. 19 return false;
  20. 20 }
  21. 21 console.log('文件:'+stats.isFile());
  22. 22 console.log('目录:'+stats.isDirectory());
  23. 23 })
  24. 24
  25. 25
  26. 26 //2. fs.mkdir 创建目录
  27. 27 fs.mkdir('css',function(error){
  28. 28 if(error){
  29. 29 console.log(error);
  30. 30 return false;
  31. 31 }
  32. 32 console.log('创建目录成功');
  33. 33 })
  34. 34
  35. 35
  36. 36 //3. fs.writeFile 写入文件(会覆盖之前的内容)(文件不存在就创建) utf8参数可以省略
  37. 37 fs.writeFile('123.txt','你好nodejs 覆盖','utf8',function(error){
  38. 38 if(error){
  39. 39 console.log(error);
  40. 40 return false;
  41. 41 }
  42. 42 console.log('写入成功');
  43. 43 })
  44. 44
  45. 45
  46. 46 //4. fs.appendFile 追加文件
  47. 47 fs.appendFile('123.txt','这是写入的内容\n',function(error){
  48. 48 if(error){
  49. 49 console.log(error);
  50. 50 return false;
  51. 51 }
  52. 52 console.log('写入成功');
  53. 53 })
  54. 54
  55. 55
  56. 56 //5.fs.readFile 读取文件
  57. 57 fs.readFile('123.txt',function(error,data){
  58. 58 if(error){
  59. 59 console.log(error);
  60. 60 return false;
  61. 61 }
  62. 62 //console.log(data); //data是读取的十六进制的数据。 也可以在参数中加入编码格式"utf8"来解决十六进制的问题;
  63. 63 console.log(data.toString()); //读取出所有行的信息
  64. 64 })
  65. 65
  66. 66
  67. 67 //6.fs.readdir 读取目录下第一级内容 把目录下面的文件和文件夹都获取到。
  68. 68 fs.readdir('html',function(error,data){
  69. 69 if(error){
  70. 70 console.log(error);
  71. 71 return false;
  72. 72 }
  73. 73 console.log(data); //data是数组类型,包含文件夹以及文件的名字(只有第一级目录内容)。拿到一个文件夹下面的所有目录
  74. 74 })
  75. 75
  76. 76
  77. 77 //7.fs.rename 重命名 1.改名 2.剪切文件(移动)
  78. 78 fs.rename('html/index.html','html/news.html',function(error){
  79. 79 if(error){
  80. 80 console.log(error);
  81. 81 return false;
  82. 82 }
  83. 83 console.log('修改名字成功');
  84. 84 })
  85. 85
  86. 86
  87. 87 //8. fs.rmdir 删除目录 rmdir 这个方法只能删除目录,不能删除文件
  88. 88 fs.rmdir('abc目录',function(error){
  89. 89 if(error){
  90. 90 console.log(error);
  91. 91 return false;
  92. 92 }
  93. 93 console.log('删除目录成功');
  94. 94 })
  95. 95
  96. 96
  97. 97 //9. fs.unlink删除文件
  98. 98 fs.unlink('index.txt',function(error){
  99. 99 if(error){
  100. 100 console.log(error);
  101. 101 return false;
  102. 102 }
  103. 103 console.log('删除文件成功');
  104. 104 })
  105. 105
  106. 106
  107. 107 //10. fs.createReadStream 从文件流中读取数据,读取的文件比较大时建议用流的方式读取,文件比较大会多次读取。
  108. 108 var fileReadStream = fs.createReadStream( 'data1.json');
  109. 109 var str = '';
  110. 110 fileReadStream.on('data', (data) => {
  111. 111 console.log("接收到" + data.length); //文件比较大时,会多次读取,多次执行该回调函数
  112. 112 str += data;
  113. 113 })
  114. 114 fileReadStream.on('end', () => {
  115. 115 console.log(" --- 结束 ---");
  116. 116 console.log( str );
  117. 117 })
  118. 118 fileReadStream.on('error', (error) => {
  119. 119 console.log(error)
  120. 120 })
  121. 121
  122. 122
  123. 123 //11. fs.createWriteStream 写入文件流
  124. 124 var fs = require("fs");
  125. 125 var data = "我是从数据库获取的数据,我要保存起来";
  126. 126 var writerStream = fs.createWriteStream('output.txt');
  127. 127 writerStream.write( data , 'UTF8' );
  128. 128 writerStream.end(); //标记文件末尾 结束写入流,释放资源
  129. 129 writerStream.on( 'finish', function() {
  130. 130 console.log("写入完成。");
  131. 131 });
  132. 132 writerStream.on( 'error', function(error){
  133. 133 console.log(error.stack);
  134. 134 });
  135. 135 console.log("程序执行完毕");
  136. 136
  137. 137
  138. 138 //12. pipe 管道流
  139. 139 var fs = require("fs");
  140. 140 var readerStream = fs.createReadStream( 'input.txt');
  141. 141 var writerStream = fs.createWriteStream( 'output.txt');
  142. 142 readerStream.pipe( writerStream );
  143. 143 console.log("程序执行完毕");
  144. 144
  145. 145
  146. 146 //13. fs.access 判断目录、文件是否存在(读写权限)
  147. 147 var fs = require('fs');
  148. 148 fs.access('package.json',(err)=>{
  149. 149 console.log(err ? '目录/文件不存在': '文件存在,可以进行读写');
  150. 150 });
  151. 151

作者:

链接:https://blog.csdn.net/houyanhua1/article/details/79443987

来源:CSDN

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号