FS文件系统

第一次用这个的时候非常爽,可以在代码层编写“增删改查”文件的功能。分解里面提供的方法,接下来我们从头创建开始,最后删除文件结束,一套流程接下fs文件系统的神奇。

要使用fs文件系统就要引用,否则无法实现功能,代码如下

//引入文件系统
var fs = require('fs');

新建目录:mkdir

//引入文件系统
var fs = require('fs'); //创建目录
fs.mkdir('./html',function(err){
if(err){
console.log(err);
}else{
console.log('创建目录成功!');
}
});

第一步完成了,在当前项目中已经存在一个叫html的文件夹,当我想拿mkdir去创建单独文件是无法实现的,起结果还是一个文件夹,怎么去创建单独的文件呢?

新建文件:writeFlie

//引入文件系统
var fs = require('fs'); //创建文件
fs.writeFile('./html/html.txt',function(err){
if(err){
console.log(err);
}else{
console.log('创建文件成功!');
}
});

执行之后,在html文件夹下又多了一个html.txt类型的文件,对于上段代码可重复操作,因为它既能写又能创建文件。

接下来又要考虑一个问题,既然有文件了,但是里面内容怎么去编写,还是同一个方法,就是多了一个参数变化,从下面代码中体现。

//引入文件系统
var fs = require('fs'); var _txt = 'hello node.js'; //创建文件
fs.writeFile('./html/html.txt',_txt,function(err){
if(err){
console.log(err);
}else{
console.log('创建文件成功!');
}
});

定义了一个_txt变量,放入到writeFile函数中去。这样它就可以在html.txt文件中写入新的内容了。同时这个函数也可以当做更新操作,把原文件内容重新定义。"增删改查",writeFile占据了3样功能,太喜欢这个方式了。

接下来不需这个文件的时候就需要删除操作,fs提供了一个方法

删除文件:unlink

//引入文件系统
var fs = require('fs'); //删除文件
fs.unlink('./html/html.txt',function(err){
if(err){
console.log(err);
}else{
console.log('删除文件成功!');
}
});

上面一套简单的流程走完,还有很多方法没有说,接下来一个个来:

能创建目录就能删除目录,

删除目录:rmdir (如果文件夹中存在单独文件,此操作会抛出异常)

//引入文件系统
var fs = require('fs');
//删除目录
fs.rmdir('./html',function(err){
if(err){
console.log(err);
}else{
console.log('删除目录成功!')
}
});

运行结果:

如果文件下还存在文件,抛异常,运行结果:

如果对文件不想任何有改动的操作,就只为读取,文件系统提供了readdir函数

读取目录或文件:readdir

//引入文件系统
var fs = require('fs');
//读取目录
fs.readdir('./index',function(err,data){
if(err){
console.log(err);
}else{
console.log('读文件成功!'+ data);
}
});

只读到文件夹层级,就会把此文件夹下的文件读取出来

读取到单独文件的运行结果:

readdir返回结果是以数组形式呈现

查看路径是否存在:exists

首先说明下我的工程目录,看截图

我要找一下当前目录是否存在的操作:

//引入文件系统
var fs = require('fs');
var _path = __dirname + "/klm";
//判断
fs.exists(_path,function(exist){
    if(exist){
        console.log(exist + "路径存在...");
    }else{
        console.log('目录路径不存在');
    }
});

如果存在结果是布尔值true

在fs文件系统也提供了同步操作:writeFileSync(同步写入),readFileSync(同步读取),mkdirSync(同步创建),这里区别就是异步I/O和同步I/O,node.js主要运用异步I/O去处理,提高响应性能,对于同步I/O看什么场景需求了。

打开文件open:

这个方法有些特殊,它提供了几种参数方式。这些方式对于打开文件方式起到很重要的作用。

1. “r”已读取文件方式打开

2. "r+"已读写文件方式打开

3. "w"已写入方式打开,如果文件不存在则自动创建

4. “w+”已读写方式打开,如果文件不存在则自动创建

5. "a"已追加模式打开,如果文件不存在则自动创建

6. “a+”已读取追加模式打开,如果文件不存在则自动创建

例子:

//引入文件系统
var fs = require('fs');
fs.open('./index/aa.txt','r',function(open){
if(open){
console.log(open);
}else{
console.log('操作成功');
}
});

这段代码第二个参数就是设置打开模式用的。

node.js文件系统的更多相关文章

  1. Node.js文件系统、路径的操作详解

    17173 17173 2 75 2014-12-12T05:06:00Z 2014-12-12T05:06:00Z 21 2735 15595 www.17173.com 129 36 18294 ...

  2. Node.JS文件系统解析

    1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFile ...

  3. Node.js 文件系统

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...

  4. Node.js文件系统、路径的操作函数

    Node.js文件系统.路径的操作函数 目录 Node.js文件系统.路径的操作函数 1.读取文件readFile函数 2.写文件 3.以追加方式写文件 4.打开文件 5.读文件,读取打开的文件内容到 ...

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

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...

  6. 33.Node.js 文件系统fs

    转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API. Node ...

  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文件系统Api总结

    //公共引用 var fs = require('fs'), path = require('path'); 1.读取文件readFile函数 //readFile(filename,[options ...

  9. Node.js 文件系统流pipe到Http响应流中

    // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); var fs=req ...

随机推荐

  1. 模拟赛1031d1

    NP(np)Time Limit:1000ms Memory Limit:64MB题目描述LYK 喜欢研究一些比较困难的问题,比如 np 问题.这次它又遇到一个棘手的 np 问题.问题是这个样子的:有 ...

  2. UbuntuLinux安装java

    jdk1.7,jdk1.8详情,参见:http://www.cnblogs.com/a2211009/p/4265225.html

  3. Linuxc:创建与监控多个子进程

    #include <unistd.h> #include <sys/types.h> #include <stdlib.h> #include <signal ...

  4. iOS真机调试

    备注:本阶段之前的修改配置文件.准备脚本等,只需要做一次.但本阶段的操作,对每个需要真机调试的工程都要做一遍. ① 禁用Xcode自动的签名操作 将工程配置“Build Settings”中所有的Co ...

  5. hdu1722(gcd)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1722 题意:要使一块蛋糕既能均分给a个人,又能均分给b个人,问至少需要分成几块(不需要每块都一样大小) ...

  6. Java注释@interface的用法

    转---------- java用  @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类.@Override,@Deprecated,@Suppr ...

  7. Xcode - 修改变量名、类名及字符串的替换操作

    在做iOS开发代码优化的工作时,优化代码结构之前,我们应该先整理好工程的外貌,将文件和类的命名进行规范,在Xcode中为我们提供了方便而强大的名称修改功能. 第一步:修改类名 将鼠标点击放在类的名称上 ...

  8. mysql常用表/视图管理语句

    查看所有表  show tables; 查看表/视图结构 desc 表名/视图名: 查看建表过程  show create table 表名: 查看建视图过程 show create view 视图名 ...

  9. iOS 获取当前展示的页面

    - (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWindow * window = [[UIApplica ...

  10. Git+VirtalBaox+Vagrant创建Linux虚拟机

    文章内容来自Udacity课程:Linux Command Line Basics--Getting Started with the Shell Your own Linux box To lear ...