fs是唯一一个同时提供同步和异步API的模块;

读取文件夹文件名,数组形式返回:

var fs = require('fs');
//async
fs.readdir('./',function(err,files) {
console.log(files);
});
//sync
var files = fs.readdirSync('../')
console.log(files));

//fs.readFile()读取文件;

process全局对象中包含三个流对象:stdin,stdout,stderr;  console.log()内部就是在指定字符后加上\n字符,并将其写到stdout流中;

:node中有各种流,简而言之,当涉及不断地对数据进行读写时,流就出现了;

Node命令行(CLI):

  • argv:

    • process.argv包含了Node程序运行时的参数值;以数组返回,第一个元素是node,第二个元素是执行的文件路径,接着是命令行后跟的参数;
    • 所以获取参数process.argv.slice(2);
  • 工作目录:
    • __dirname:获取执行文件时该文件所在目录;
    • process.cwd():获取程序运行时,当前的工作目录;
    • process.chdir('/'):更改目录,如
//显示当前根目录:
process.chdir('/');
console.log(process.cwd());
//其他目录
process.chdir('D:/Dict');
console.log(process.cwd());
  • process.env:数组形式返回电脑环境变量,可以以关联表查找;
  • process.exit(code);退出程序,省略或code为0表示成功退出,1表示失败退出,一般同用console.error();
  • ANSI转义码:如
    console.log('\033[90m' + data.replace(/(.*)/g, '  $1') + '\033[39m');
    

    \033表示转义开始;[表示颜色设置;m表示颜色设置结束;如果结尾有还原颜色的设置,表示只改变这一部分颜色;

读写文件例子:

 var fs = require('fs'),
cwd = process.cwd; //当前绝对路径
stdin = process.stdin,
stdout = process.stdout, //简化
stats = []; fs.readdir(cwd(), function (err, files) {
console.log(' ');
if(!files.length) {
return console.log('\033[31m No files to show!\033[39m\n');
}
console.log('Select which file or directory you want to see\n'); function file(i) {
var filename = files[i];
fs.stat(__dirname + '/' + filename, function (err, stat) { //文件或文件夹的原目录
stats[i] = stat;
if(stat.isDirectory()) { //文件夹的话
console.log(' ' + i + ' \033[36m' + filename + '/\033[39m');
} else {
console.log(' ' + i + ' \033[90m' + filename + '\033[39m');
}
if(++i == files.length) {
read();
} else {
file(i);
}
});
};
function read() {
console.log(' ');
stdout.write(' \033[33mEnter your choice: \033[39m');
stdin.resume(); //等待用户输入
stdin.setEncoding('utf8'); //设置流编码‘utf8'支持特殊字符;
stdin.on('data', option); //监听data事件;
};
function option(data) {
var filename = files[Number(data)];
if(!filename) {
stdout.write(' \033[31mEnter your choice: \033[39m');
} else {
stdin.pause(); //停止输入
if(stats[Number(data)].isDirectory()) {
fs.readdir(__dirname + '/' + filename, function(err, files) {
console.log(' ');
console.log(' (' + files.length + ' files' + ')');
files.forEach(function(file) {
console.log(' - ' + files);
});
console.log(' ');
});
} else {
fs.readFile(__dirname + '/' + filename, 'utf8', function(err, data) {
console.log(' ');
console.log('\033[90m' + data.replace(/(.*)/g, ' $1') + '\033[39m');
})
}
}
};
file(0);
});

 stream:

var stream = fs,createReadStream(_filename);  //为文件创建一个可读Stream对象;
//每次读取可变大小内容块,且每次读取后会触发回调事件;
stream.on('data', function(chunk) {
  //
});
stream.on('end',function(chunk){
//
});

监视:

  • watchFiles(); //监视文件;

    //监视当前目录下files目录中的.css文件
    var fs = require('fs');
    process.chdir('files')
    var files = fs.readdirSync(process.cwd());
    files.forEach(function(file) {
    if(/\.css/.test(file)) {
    fs.watchFile(process.cwd() + '/' + file, function() {
    console.log('-' + file + ' changed!');
    })
    }
    })
  • watch();//监视目录;
    var fs = require('fs');
    fs.watch(process.cwd(), function (event, filename) {
    console.log(event,filename);
    });

      

  

nodeAPI--FS的更多相关文章

  1. 简单的nodejs 文件系统(fs)读写例子。

    在nodejs中,可以通过fs(file system)模块进行文件的I/O操作. API链接地址: http://nodeapi.ucdok.com/#/api/fs.html 下面进行fs文件系统 ...

  2. Node+fs+定时器(node-schedule)+MySql

    目标:将本人写博客时候的截图保存到桌面的图片 执行保存到指定文件进行整理 并写入数据库 先看最终的目录结构: package.json文件: { "name": "zqz ...

  3. NodeJs+http+fs+request+cheerio 采集,保存数据,并在网页上展示(构建web服务器)

    目的: 数据采集 写入本地文件备份 构建web服务器 将文件读取到网页中进行展示 目录结构: package.json文件中的内容与上一篇一样:NodeJs+Request+Cheerio 采集数据 ...

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

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

  5. Node.js学习——基本模块之fs

    基本模块之fs 异步读文件 异步读取一个文本文件的代码如下: 'use strict'; var fs = require('fs'); fs.readFile('sample.txt', 'utf- ...

  6. hadoop程序问题:java.lang.IllegalArgumentException: Wrong FS: hdfs:/ expected file:///

    Java代码如下: FileSystem fs = FileSystem.get(conf); in = fs.open(new Path("hdfs://192.168.130.54:19 ...

  7. nodejs 使用fs实现多级联动

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0gAAAEdCAIAAAC5WdDhAAAgAElEQVR4nO3da3Mc153f8X4feq5lFR

  8. 【转】Hadoop FS Shell命令

    FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...

  9. Asynchronous fs.stat.isDirectory()

    function showFile() { for(var i = 0; i< files.length; i++){ var itemFile = files[i]; fs.stat(__di ...

  10. Node.js入门笔记(4):文件系统(fs)

    文件系统(FileSystem) 文件系统模块 对于文件无外乎创建修改添加. File System - 文件系统模块 - require('fs') fs模块是核心模块,需要使用require导入后 ...

随机推荐

  1. We7<001>--We7 CMS之报错: HTTP 错误 404.0 - Not Found 您要找的资源已被删除、已更名或暂时不可用。

    根据教程--http://wenku.baidu.com/link?url=8_Jcl0TY-n1RPWRBzfvrFZNrik0YIrqJAE_IFbNk-ibqLA7kZIkOu1efaYvmGr ...

  2. 杭电hdoj题目分类

    HDOJ 题目分类 //分类不是绝对的 //"*" 表示好题,需要多次回味 //"?"表示结论是正确的,但还停留在模块阶 段,需要理解,证明. //简单题看到就 ...

  3. 搭建自己的SIP服务器:开源sip服务器opensips的搭建及终端TwInkle的使用

    搭建自己的SIP服务器:开源sip服务器opensips的搭建及终端TwInkle的使用 分类: linux编译相关2013-01-05 21:38 17983人阅读 评论(24) 收藏 举报 先下载 ...

  4. php如何将数组保存为文件的方法? 三个方法让你快速把数组保存成为文件存储

    php 缓存数组形式的变量,实际上就是将 php 将数组写入到一个文本文件或者后缀名为 .php 存储起来,使用的时候直接调用这个文件.那么如何使用 php 将数组保存为文本格式的文件呢?下面分享三种 ...

  5. python chm 中文帮助 (2.7 和 3.4)

    sphinx-build 生成的(htmlhelp) 存在2个问题 1.生成的html 编码 cp2152,需要修改/sphinx/builders/html.py ctx['encoding'] = ...

  6. 1.saltstack基础笔记

    环境: master: 节点node1:阿里云:121.42.195.15 centos6.6 minion: 节点node2:腾讯云:182.254.157.19 centos6.6 一.salts ...

  7. BestCoder11(Div2) 1003 Boring count (hdu 5056) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5056 题目意思:给出一条只有小写字母组成的序列S,问当中可以组成多少条每个字母出现的次数 <= ...

  8. MVC准备前基础知识

    一.自动属性C#自动属性可以避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑public class Product{ public int Id { get; set; } pub ...

  9. php 面向对象要点汇总

    //类和对象//对象:一切东西都可以看做对象,对象是类的实例化.//类:类是对象的抽象,用来描述众多对象共有的特征. //定义类 class//成员变量 和 成员方法//访问修饰符 public共有的 ...

  10. linux dd命令刻录启动U盘详解

    dd if=xxx.iso of=/dev/sdb bs=1M 用以上命令前必须卸载u盘,sdb是你的u盘,bs=1M是块的大小,后面的数值大,写的速度相对块一点,但也不是无限的,我一般选2M,注意, ...