1. fs.stat 检测是文件还是目录

fs.stat('html',function(err,stats){
if(err){
console.log(err); return false;
} console.log('文件:'+stats.isFile());
console.log('目录:'+stats.isDirectory()); })

2. fs.mkdir 创建目录

  //接收参数:
//path 将创建的目录路径
//mode 目录权限(读写权限),默认0777
//callback 回调,传递异常参数err fs.mkdir('css',function(err){
if(err){
console.log(err); return false;
}
console.log('创建目录成功'); })

3. fs.writeFile 创建写入文件

//filename      (String)            文件名称
//data (String | Buffer) 将要写入的内容,可以使字符串 或 buffer数据。
//options (Object) option数组对象,包含:
//· encoding (string) 可选值,默认 ‘utf8′,当data使buffer时,该值应该为 ignored。
//· mode (Number) 文件读写权限,默认值 438
//· flag (String) 默认值 ‘w'
//callback {Function} 回调,传递一个异常参数err。 fs.writeFile('t.txt','你好nodejs 覆盖','utf8',function(err){ if(err){
console.log(err); return false;
}
console.log('写入成功');
})

4. fs.appendFile 追加文件

fs.appendFile('t1.txt','这是写入的内容',function(err){

  if(err){
console.log(err); return false;
}
console.log('写入成功');
})

5.fs.readFile 读取文件

fs.readFile('t1.txt',function(err,data){
if(err){
console.log(err); return false;
}
//console.log(data); console.log(data.toString()); })

6.fs.readdir 读取目录

fs.readdir('html',function(err,data){

   if(err){
console.log(err); return false;
}
console.log(data); })

7.fs.rename 重命名

fs.rename('html/index.html','html/news.html',function(err){

   if(err){
console.log(err); return false;
}
console.log('修改名字成功');
}) fs.rename('html/css/basic.css','html/style.css',function(err){ if(err){
console.log(err); return false;
}
console.log('剪切成功');
})

8. fs.rmdir 删除目录

fs.rmdir('t',function(err){
if(err){
console.log(err); return false;
}
console.log('删除目录成功');
}) // ENOENT: no such file or directory, rmdir rmdir 这个方法只能删除目录
fs.rmdir('index.txt',function(err){
if(err){
console.log(err); return false;
}
console.log('删除目录成功');
})

9. fs.unlink 删除文件

fs.unlink('index.txt',function(err){

       if(err){
console.log(err);
return false;
}
console.log('删除文件成功');
})

10. fs.createReadStream 从文件流中读取数据

const fs = require('fs')

//流的方式读取文件

var readStream=fs.createReadStream('input.txt');

var str='';/*保存数据*/
var count=0; /*次数*/
readStream.on('data',function(chunk){
str+=chunk;
count++; }) //读取完成
readStream.on('end',function(chunk){
console.log(count);
console.log(str); }) //读取失败
readStream.on('error',function(err){
console.log(err); })

11. fs.createWriteStream 写入文件

var fs = require("fs");
var data = '我是从数据库获取的数据,我要保存起来11\n'; // 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt'); for(var i=0;i<100;i++){ writerStream.write(data,'utf8'); } //标记写入完成
writerStream.end(); writerStream.on('finish',function(){ console.log('写入完成');
}) //失败
writerStream.on('error',function(){ console.log('写入失败');
})

12. 管道流

var fs = require("fs");

// 创建一个可读流
var readerStream = fs.createReadStream('input.txt'); // 创建一个可写流
var writerStream = fs.createWriteStream('output.txt'); // 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream); console.log("程序执行完毕");

demo:

//1.判断服务器上面有没有upload目录。没有创建这个目录。   (图片上传)

//要用fs目录必须得引入fs

var fs=require('fs');
//
//fs.stat('upload',function(err,stats){
//
// if(err){ /*没有这个目录*/
// fs.mkdir('upload',function(error){
// if(error){
//
// console.log(error);
// return false;
// }
// console.log('创建成功');
// })
// }else{
// console.log('目录已经存在');
// console.log(stats.isDirectory());
// }
//
//}) //2. 找出html目录下面的所有的目录,然后打印出来 //错误写法
//fs.readdir('html',function(err,files){
// if(err){
// console.log(error);
//
// }else{ /*判断是目录还是文件夹*/
// console.log(files); /*数组*/
//
// for(var i=0;i<files.length;i++){
//
// console.log(files[i]);
// fs.stat(files[i],function(error,stats){ /*循环判断是目录还是文件 ---异步 */
//
// console.log(files[i]);
// })
// }
//
// }
//
//
//})
// //打印出什么 3 3 3
//for(var i=0;i<3;i++){
//
// setTimeout(function(){
// console.log(i);
// },100)
//} //正确的写法 var filesArr=[];
fs.readdir('html',function(err,files){
if(err){
console.log(error); }else{ /*判断是目录还是文件夹*/
//console.log(files); /*数组*/ (function getFile(i){ if(i==files.length){ /*循环结束*/
console.log('目录:');
console.log(filesArr); /*打印出所有的目录*/
return false;
}
//files[i] = css js news.html
//注意:目录
fs.stat('html/'+files[i],function(error,stats){ /*循环判断是目录还是文件 */ if(stats.isDirectory()){ /*目录*/ filesArr.push (files[i]); /*保存数据*/
}
//递归掉用
getFile(i+1);
})
})(0)
}
})

NodeJs FS 文件系统模块的更多相关文章

  1. Node.js:fs文件系统模块

    fs文件系统模块,这是一个非常重要的模块,对文件的操作都基于它.该模块的所有方法都有同步和异步两种方式,下面便介绍一下该模块的使用. 1.检测当前进程对文件的权限 使用fs.access(path[, ...

  2. node.js中fs文件系统模块的使用

    node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作. fs模块中,所有的方法分为同步和异步两种实现. 有 sync 后缀的方法为同步方法,没有 sync 后缀的方法 ...

  3. Node.js fs文件系统模块

    一.读取文件几个步骤 1.先引入fs文件系统模块 2.使用readfile 或 readFileSync 注意点:它们的回调函数有两个参数,第一个是err,第二个是data,得到的data是buffe ...

  4. node-fs文件系统模块

    在node环境中所有与文件操作都是通过fs核心模块实现的.包括文件的创建.删除.查询以及读写和写入 在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 ...

  5. node.js常用的fs文件系统

    fs文件系统模块对于系统文件及目录进行一些读写操作. 模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync(). 异步的 ...

  6. node.js中常用的fs文件系统

    fs文件系统模块对于系统文件及目录进行一些读写操作. 模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync(). 异步的 ...

  7. Node.js 文件系统模块

    章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...

  8. 大熊君大话NodeJS之------FS文件模块

    一,开篇分析 文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集.可以通过调用 require("fs") 来获取该模块.文件系统模块中的所有方法均有异步和同步 ...

  9. nodeJS之fs文件系统

    前面的话 fs文件系统用于对系统文件及目录进行读写操作,本文将详细介绍js文件系统 概述 文件 I/O 是由简单封装的标准 POSIX 函数提供的. 通过 require('fs') 使用该模块. 所 ...

随机推荐

  1. php workerman定时任务

    一.下载workerman https://www.workerman.net/download 二.下载workerman/mysql http://doc3.workerman.net/64020 ...

  2. Fedora 29 安装 GitBook 教程

    Fedora 29 安装 GitBook 教程 本文原始地址:https://sitoi.cn/posts/53731.html 安装 nvm 安装 nvm curl -o- https://raw. ...

  3. docker配置镜像加速器

    docker配置镜像加速器 针对Docker客户端版本大于 1.10.0 的用户 您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器 sudo mkdir - ...

  4. Statefulset:部署有状态的多副本应用

    10.1.什么是Statefulset StatefulSet是Kubernetes提供的管理有状态应用的负载管理控制器API.        特点: 1.具有固定的网络标记(主机名) 2.具有持久化 ...

  5. openstack环境下搭建的keepalived 两台服务器直接无法ping通VIP ALLOWED-ADDRESS-PAIRS

    真的是搞了很久 结果一问人才知道真的是neutron的问题 当然前提是设置unicast 而不是默认设置 先贴出来后面再更新图片 [root@haproxy1 ~]# cat /etc/keepali ...

  6. 理解serverless无服务架构原理(一)

    阅读目录 一:什么是serverless无服务? 二:与传统模式架构区别? 三:serverless优缺点? 四:使用serverless的应用场景有哪些? 回到顶部 一:什么是serverless无 ...

  7. Boring counting HDU - 3518 (后缀自动机)

    Boring counting \[ Time Limit: 1000 ms \quad Memory Limit: 32768 kB \] 题意 给出一个字符串,求出其中出现两次及以上的子串个数,要 ...

  8. 四、执行Python的两种方式

    第一种 交互式 ,在cmd中运行 · jupyter对这一种进行了封装 优点: 直接输出结果 缺点: 无法保存 第二种 命令式,通过cmd中输入python3文本 txt文件可以,py文件也可以,命令 ...

  9. Xamarin.Forms之页面及导航

    参考链接: Xamarin. Forms 页面 Xamarin.Forms 导航 Xamarin.Forms 第04局:页面 Xamarin.Forms页面代表跨平台的移动应用程序屏幕. 下文描述的所 ...

  10. luoguP4721 【模板】分治 FFT

    P4721 [模板]分治 FFT 链接 luogu 题目描述 给定长度为 \(n-1\) 的数组 \(g[1],g[2],..,g[n-1]\),求 \(f[0],f[1],..,f[n-1]\),其 ...