Node.js内置的fs模块就是文件系统模块,负责读写文件以及对文件进行相关操作。

下面直接可参考下面的代码进行fs模块里面基本方法的学习:

/**
* Created by Administrator on 2019/4/23.
*/
/*注意,下面操作的文件如果是磁盘其他位置的文件,路径可以写做:
* C:/Users/Administrator/Desktop/新建 DOC 文档.doc
* 如果写做:C:\Users\Administrator\Desktop\新建 DOC 文档.doc就会报错
* 具体原因有待研究
* */
/*
1. fs.stat 检测是文件还是目录
2. fs.mkdir 创建目录
3. fs.writeFile 创建文件并写入内容
4. fs.appendFile 创建文件并追加内容
5.fs.readFile 读取文件内容
6.fs.readdir读取目录
7.fs.rename 重命名
8. fs.rmdir 删除目录
9. fs.unlink删除文件
*/
/*1. fs.stat 检测是文件还是目录*/
var fs=require("fs");
fs.stat('html',function (err,stats) {
if (err){
console.log(err);
return false;
}
console.log('文件:'+stats.isFile());
console.log('目录:'+stats.isDirectory());
/*文件:false
目录:true*/
})
/*2. fs.mkdir 创建目录*/
//接收参数:
//path 将创建的目录路径
//mode 目录权限(读写权限),默认0777
//callback 回调,传递异常参数err
fs.mkdir('css',function (err) {//该回调函数不需要返回信息,只需要监听失败信息即可
if (err){
console.log(err);//例如所创建的文件夹已经存在就会返回错误信息
return false;
}else {
console.log('创建css目录成功!');
}
})
//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("writeFileTest.java",'这一句是写入writeFileTest.java这个文件的内容','utf8',function (err) {
if (err){
console.log(err);//
return false;
}else {
console.log('创建文件并写入内容成功!');
}
})
//4. fs.appendFile 追加文件
//如果文件不存在先创建文件,如果文件存在,就会直接写入内容并追加到原来的内容之后(可以用来记录日志)
fs.appendFile('appendFileTest.txt','这是追加写入appendFileTest.txt文件的内容\n',function (err) {
if (err){
console.log(err);
}else {
'创建文件并且写入(追加)内容成功!!!'
}
})
//5.fs.readFile 读取文件
fs.readFile('appendFileTest.txt',function (err,data) {
if(err){
console.log(err);
}else{
console.log(data);//打印出的是16进制的内容<Buffer e8 bf 99 e6 98 af e8 bf bd e5 8a a0 e5 86 99 e5 85 a5 61 70 70 65 6e 64 46 69 6c 65 54 65 73 74 2e 74 78 74 e6 96 87 e4 bb b6 e7 9a 84 e5 86 85 e5 ae ... >
console.log(data.toString());//打印出的是我们正常的文本信息
}
})
//6.fs.readdir读取目录 把目录下面的文件和文件夹都获取到。
/*
* 注意只读取该文件夹的子项,不能读取孙子项
* */
fs.readdir('html',function (err,data) {
if (err){
console.log(err);
}else{
console.log(data);
/*[ 'css', 'index.html', 'js' ]*/
}
})
//7.fs.rename 重命名
//用例1.改名
fs.rename("html/index1.html","html/index2.html",function (err) {
if (err){
console.log(err);//李如指定文件不存在的情况就会报错
}else{
console.log('改名成功!');
}
})
//用例2.剪切文件:把html文件夹下面的index2.html文件剪切到html/css/文件夹下面
fs.rename("html/index2.html","html/css/index2.html",function (err) {
if (err){
console.log(err);//李如指定文件不存在的情况就会报错
}else{
console.log('改名成功!');
}
})
//8. fs.rmdir 删除目录;不能删除文件
/*注意如果目录不为空会报错:Error: ENOTEMPTY: directory not empty*/
fs.rmdir("css/t",function (err) {
if (err){
console.log(err);//
}else{
console.log('删除文件夹成功!');
}
})
//9. fs.unlink删除文件
fs.unlink("C:/Users/Administrator/Desktop/新建 DOC 文档.doc",function (err) {
if (err){
console.log(err);//
}else{
console.log('删除文件成功!');
}
})
//练习题
//判断服务器上某个文件夹是否存在,不存在的话就创建
var fs=require("fs");
fs.stat("D:/NodeTest",function (err) {//检测D:/下面有没有NodeTest文件夹
if (err){//如果不存在就会报错,然后我们创建一个文件夹
fs.mkdir('D:/NodeTest',function (erroy) {//创建文件夹
if (erroy){
console.log(erroy);
}else{
console.log('文件夹创建成功了!!!');
}
})
}else{//文件夹存在的情况
console.log('文件夹已经存在的!!');
}
})

十三、Node.js-fs模块(上)的更多相关文章

  1. 从官网学习Node.js FS模块方法速查

    最新文档请查看仓库 https://github.com/wangduandu... 1. File System 所有文件操作提供同步和异步的两种方式,本笔记只记录异步的API 异步方式其最后一个参 ...

  2. Node.js FS模块方法速查

    1. File System 所有文件操作提供同步和异步的两种方式,本笔记只记录异步的API 异步方式其最后一个参数是回调函数.回调函数的第一个参数往往是错误对象,如果没有发生参数,那么第一个参数可能 ...

  3. Node.js——fs模块(文件系统),创建、删除目录(文件),读取写入文件流

    /* 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 3. fs.writeFile 写入文件(文件不存在就创建,但不能创 ...

  4. Node.js Web模块

    什么是Web服务器? Web服务器是处理由HTTP客户端发送的,如web浏览器的HTTP请求的软件应用程序,并返回响应于客户端网页. Web服务器通常伴随着图片,样式表和脚本的HTML文档. 大多数W ...

  5. [Nodejs] node的fs模块

    fs 模块 Node.js 提供一组类似 UNIX(POSIX)标准的文件操作 API. Node 导入文件系统模块(fs).Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如 ...

  6. Node.js之模块机制

    > 文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. ![file](https://img2018.cnblogs.com/blog/830272/20 ...

  7. Node.js 文件系统模块

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

  8. Node.js require 模块加载原理 All In One

    Node.js require 模块加载原理 All In One require 加载模块,搜索路径 "use strict"; /** * * @author xgqfrms ...

  9. Node.js:模块

    概要:本篇博客主要介绍node.js的模块 1.创建模块 在node.js中创建一个模块非常简单,因为一个文件就是一个模块.我们只需要明白如何从其他文件中获取这个模块.Node.js提供了 expor ...

  10. Node.js的安装以及Node.js的模块管理

    索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...

随机推荐

  1. 面向对象银角大王补充2-self就是调用当前方法的对象-静态字段,公有属性-封装的理解-继承的理解,普通方法,静态方法

    self是什么,就是一个函数,就是一个形式参数 4.self就是调用当前方法的对象 静态字段,公有属性 静态字段使用场景,每个对象中保存相同的东西时,可以使用静态字段,公有属性 5.封装的理解 类中封 ...

  2. 解决阿里云下server 2008中tomcat不能外网访问

    1. 首先这台服务器是别人给到手的服务器, 所有环境跟我讲是全新的, 然后我开始配置tomcat; 开始安装sql 2008 r22. r1安装好之后, 本机内部怎么访问都行( . 和 127.0.0 ...

  3. DevOps介绍

    DevOps 也同样要通过技术工具链完成持续集成.持续交付.用户反馈和系统优化的整合.Elasticbox 整理了 60+ 开源工具与分类,其中包括版本控制&协作开发工具.自动化构建和测试工具 ...

  4. 关系数据库域关系演算语言QBE

    QBE: Query By Example 基于屏幕表格的查询语言 查询要求:以填写表格的方式构造查询 用示例元素(域变量)来表示查询结果可能的情况 查询结果:以表格形式显示 QBE操作框架 ...

  5. 「小程序JAVA实战」 小程序的事件(11)

    转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-11/ 我们以前在web开发的时候,web页面也有一些相关的事件,当然小程序要接触屏幕要进行一些点击 ...

  6. 玩转angularJs——通过自定义ng-model,不仅仅只是input可以实现双向数据绑定

    体验更优排版请移步原文:http://blog.kwin.wang/programming/angularJs-user-defined-ngmodel.html angularJs双向绑定特性在开发 ...

  7. VMWARE 虚拟机新增硬盘,格式化分区,并挂载

    VMWARE 虚拟机新增 硬盘 并挂载 一台虚拟机上安装ORACLE12c 需要分一块硬盘挂载数据文件 日志文件 以及归档文件 1. 关闭虚拟机 2. 编辑虚拟机设置 选择[编辑虚拟机设置]并打开,将 ...

  8. mysql 批量插入与单条插入 的效率比较

    1.数据插入性能(单个插入和批量插入) public class Test { private Long id; private String test; public Long getId() { ...

  9. mysql主从延迟

    1. MySQL数据库主从同步延迟原理.要说延时原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作,主 库对所有DDL和DML产生binlog,binlog是顺序写,所 ...

  10. vectors 使用应该注意到的问题

    ector1. vector的元素必须具备 assignable和 copyable . 2.vector的迭代器是随机存取迭代器. 3.要考虑到vector的大小(size)和容量(capacity ...