NodeJs FS 文件系统模块
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 文件系统模块的更多相关文章
- Node.js:fs文件系统模块
fs文件系统模块,这是一个非常重要的模块,对文件的操作都基于它.该模块的所有方法都有同步和异步两种方式,下面便介绍一下该模块的使用. 1.检测当前进程对文件的权限 使用fs.access(path[, ...
- node.js中fs文件系统模块的使用
node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作. fs模块中,所有的方法分为同步和异步两种实现. 有 sync 后缀的方法为同步方法,没有 sync 后缀的方法 ...
- Node.js fs文件系统模块
一.读取文件几个步骤 1.先引入fs文件系统模块 2.使用readfile 或 readFileSync 注意点:它们的回调函数有两个参数,第一个是err,第二个是data,得到的data是buffe ...
- node-fs文件系统模块
在node环境中所有与文件操作都是通过fs核心模块实现的.包括文件的创建.删除.查询以及读写和写入 在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 ...
- node.js常用的fs文件系统
fs文件系统模块对于系统文件及目录进行一些读写操作. 模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync(). 异步的 ...
- node.js中常用的fs文件系统
fs文件系统模块对于系统文件及目录进行一些读写操作. 模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync(). 异步的 ...
- Node.js 文件系统模块
章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...
- 大熊君大话NodeJS之------FS文件模块
一,开篇分析 文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集.可以通过调用 require("fs") 来获取该模块.文件系统模块中的所有方法均有异步和同步 ...
- nodeJS之fs文件系统
前面的话 fs文件系统用于对系统文件及目录进行读写操作,本文将详细介绍js文件系统 概述 文件 I/O 是由简单封装的标准 POSIX 函数提供的. 通过 require('fs') 使用该模块. 所 ...
随机推荐
- php workerman定时任务
一.下载workerman https://www.workerman.net/download 二.下载workerman/mysql http://doc3.workerman.net/64020 ...
- Fedora 29 安装 GitBook 教程
Fedora 29 安装 GitBook 教程 本文原始地址:https://sitoi.cn/posts/53731.html 安装 nvm 安装 nvm curl -o- https://raw. ...
- docker配置镜像加速器
docker配置镜像加速器 针对Docker客户端版本大于 1.10.0 的用户 您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器 sudo mkdir - ...
- Statefulset:部署有状态的多副本应用
10.1.什么是Statefulset StatefulSet是Kubernetes提供的管理有状态应用的负载管理控制器API. 特点: 1.具有固定的网络标记(主机名) 2.具有持久化 ...
- openstack环境下搭建的keepalived 两台服务器直接无法ping通VIP ALLOWED-ADDRESS-PAIRS
真的是搞了很久 结果一问人才知道真的是neutron的问题 当然前提是设置unicast 而不是默认设置 先贴出来后面再更新图片 [root@haproxy1 ~]# cat /etc/keepali ...
- 理解serverless无服务架构原理(一)
阅读目录 一:什么是serverless无服务? 二:与传统模式架构区别? 三:serverless优缺点? 四:使用serverless的应用场景有哪些? 回到顶部 一:什么是serverless无 ...
- Boring counting HDU - 3518 (后缀自动机)
Boring counting \[ Time Limit: 1000 ms \quad Memory Limit: 32768 kB \] 题意 给出一个字符串,求出其中出现两次及以上的子串个数,要 ...
- 四、执行Python的两种方式
第一种 交互式 ,在cmd中运行 · jupyter对这一种进行了封装 优点: 直接输出结果 缺点: 无法保存 第二种 命令式,通过cmd中输入python3文本 txt文件可以,py文件也可以,命令 ...
- Xamarin.Forms之页面及导航
参考链接: Xamarin. Forms 页面 Xamarin.Forms 导航 Xamarin.Forms 第04局:页面 Xamarin.Forms页面代表跨平台的移动应用程序屏幕. 下文描述的所 ...
- luoguP4721 【模板】分治 FFT
P4721 [模板]分治 FFT 链接 luogu 题目描述 给定长度为 \(n-1\) 的数组 \(g[1],g[2],..,g[n-1]\),求 \(f[0],f[1],..,f[n-1]\),其 ...