nodejs 操作文件系统读取写入文件
我们通过fs这个模块来对文件系统进行操作,对于文件系统操作一般都有同步、异步方法,两者区别,同步等有返回结果时候,在继续执行后面的代码,异步是不等返回结果,直接执行后面的代码,待有返回结果时候,通过回调函数来做出处理。一般同步方法函数名在异步方法名字后面加Sync,如异步读取文件readFile,同步读取文件为readFileSync,大多数情况用异步方法、但是读取配置文件要用同步方法。
readFileSync(path,[options])

创aaa.js文件
readFile(path,[options],function(err,data){});
var fs= require("fs");
fs.readFile('./aa.txt',function(err,data){
if(err){
console.log("bad")
}else{
console.log("ok");
console.log(data);
console.log(data.toString());
}
})
创建aa.txt文件
写入你好

若我们异步读取两个文件,那么这两个文件的结果谁先返回,我们是不知道的,这得看文件大小,所以我们要想有先后顺序的读取,那么得在回调函数中写读取第二个文件
var fs= require("fs");
fs.readFile('../file.txt',function(err,data){
if(err){
console.log("bad")
}else{
console.log("读取第一个文件成功");
console.log(data.toString());
fs.readFile('../file2.txt','utf-8',function(err,data){
if(err){
console.log("读取第二个文件失败");
}
if(data){
console.log("读取第2个文件成功");
console.log(data);
}
})
}
})
options
flag:文件的操作情况,r表示这个文件只读,w表示写入文件,a追加文件(常用的三个)
encoding:读取文件用的编码,utf-8,base64,ascii我们不指定编码,那么返回的data为一个buffer
var fs= require("fs");
fs.readFile('../file.txt',{flag:'r+',encoding:'utf-8'},function(err,data){
if(err){
console.log("bad")
}else{
console.log("读取第一个文件成功");
console.log(data);
fs.readFile('../file2.txt','utf-8',function(err,data){
if(err){
console.log("读取第二个文件失败");
}
if(data){
console.log("读取第2个文件成功");
console.log(data);
}
})
}
})
writeFile(filename,data,[options],callback)
wrtieFileSync(filename,data,[options])
filename:要写入的文件
data:写入文件的数据可以是字符串,可以是buffer
options:flag:对写入文件的操作默认为w,encoding:编码,mode:权限
callback:回调函数
var fs = require("fs");
var data="aa";
fs.writeFile('./aa.txt',data,{flag:'w',encoding:'utf-8',mode:''},function(err){
if(err){
console.log("文件写入失败")
}else{
console.log("文件写入成功");
console.log(data)
}
})

var fs = require("fs");
var data="天下太平-追加";
fs.writeFile('./aa.txt',data,{flag:'a',encoding:'utf-8',mode:''},function(err){
if(err){
console.log("文件写入失败")
}else{
console.log("文件追加成功");
console.log(data)
}
})
readFile 、writeFile 同时使用
读取一张图片,之后写入到另一张图片
var fs =require("fs");
fs.readFile('./1.png','base64',function(err,data){
if(err){
console.log("取图片1失败");
}else{
fs.writeFile('./2.png',data,'base64',function(err){
console.log("图片2写入成功");
})
}
})
writeFile(filename,data,{flag:'a'},callback)与appendFile一致
var fs = require("fs");
var data="你好-追加appendFile";
fs.appendFile('./aa.txt',data,function(err){
if(err){
console.log("文件写入失败")
}else{
console.log("文件追加成功");
}
})
从指定位置开始读取文件
fs.open fs.read结合实现从指定位置读取文件
fs.open(filename,options,[mode],callback)
callback(err,fd)
var fs =require("fs");
fs.open('./aa.txt','r','',function(err,fd){
if(err){
console.log("打开失败");
}else{
console.log(fd);
}
})

fs.read(fd,buffer,offset,length,pasition,callback)
fd:ope方发返回的文件描述符号
buffer:读取的文件写到那个缓存区中
offset:从缓存区中那个字节开始写入
length:写入多长的字节,
pasitong:文件指定位置处开始写入缓存区
var fs =require("fs");
fs.open('./wfile.txt','r','',function(err,fd){
if(err){
console.log("打开失败");
}else{
var buf=new Buffer();
console.log(buf)
fs.read(fd,buf,,,,function(err,bytesRead,buf){
if(err){
console.log("指定位置读取文件失败");
}else{
console.log(bytesRead);
console.log(buf);
}
})
}
})
var bytesRead=readSync(fd,buffer,offset,length,position)
指定位置写数据
fs.open()yu sf.write(fd,buffer,offset,length,position, callback)
var fs=require("fs");
//这是追加 ‘w’ 是替换原来的文件内容
fs.open('./wfile.txt','a','',function(err,fd){
if(err){
console.log("打开文件失败");
}else{
var buffer=new Buffer("小鸟");
console.log(buffer.length);
fs.write(fd,buffer,,buffer.length,,function(err,written,buffer){
if(err){
console.log("指定位置写入文件失败");
}else{
console.log(written);
console.log(buffer.toString());
}
})
fs.fsync(fd);
fs.close(fd);
}
})
fs.fsync(fd)该方法吧缓存区的数据同步到文件中
fs.close(fd)关闭文件
nodejs 操作文件系统读取写入文件的更多相关文章
- 关于Python中读取写入文件并进行文件与用户交互的操作
一.提前知识点 在python中是同样和其他语言一样可以进行文件的读取写入操作,值得注意的是,Python中打开文件读取的方式有几种,分别是以下几种: f = open('username.txt') ...
- pandas-19 DataFrame读取写入文件的方法
pandas-19 DataFrame读取写入文件的方法 DataFrame有非常丰富的IO方法,比如DataFrame读写csv文件excel文件等等,操作很简单.下面在代码中标记出来一些常用的读写 ...
- c文件二进制读取写入文件、c语言实现二进制(01)转化成txt格式文本、c读取文件名可变
c语言实现二进制(01)转化成txt格式文本: 下面的程序只能实现ascall对应字符转换,如果文件内出现中文字符,则会出现错误. 本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件 ...
- [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等
1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...
- Node.js——fs模块(文件系统),创建、删除目录(文件),读取写入文件流
/* 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 3. fs.writeFile 写入文件(文件不存在就创建,但不能创 ...
- php操作文件(读取写入文件)
一,PHP如何读取文件 PHP读取文件可以读取当前服务器或远程服务器中的文件.其步骤是:打开文件.读文件和关闭文件. 1,PHP如何打开文件 使用PHP函数fopen()打开一个文件,fopen()一 ...
- PHP文件操作 之读取一个文件(以二进制只读的方式打开)
最近应用了文件的读取,顺便复习一下! //读取一个文件 $f = fopen($filename,'rb'); $f: 表示返回的一个资源句柄 $filename:要打开的文件路径 rb:参数,表示只 ...
- java读取写入文件
先来看一下java写入文件 public static void readTxt(String value) throws IOException { FileWriter fw = null; tr ...
- matlab操作之--读取指定文件夹下的“指定格式”文件
%% 正负样本所在folder fext='*.png';%要读取的文件格式 positiveFolder='F:\课题\Crater detection\machingLearning\Positi ...
随机推荐
- Effective java -- 1
写博客我也不知道是不是一个好习惯,但是目前还不知道有什么其他更有效率的学习方法.现在的学习方法:看书,写博客.如果看明白一个东西,去写博客的话,这通常是一个浪费时间的行为,但是这个过程同样帮助自己二次 ...
- jquery中篇
一.attr 返回属性值 返回被选元素的属性值. 语法 $(selector).attr(attribute) 参数 描述 attribute 规定要获取其值的属性. 属性 • 属性 o attr(n ...
- 高通8X16电池BMS算法(一)【转】
本文转载自:http://www.voidcn.com/blog/yanleizhouqing/article/p-6037399.html 最近一直在搞电源管理相关内容,之前是8610的bms,现在 ...
- thinkphp 的 Action 控制器中的系统常量总结
THINK_PATH // ThinkPHP系统目录 APP_PATH // 当前项目目录 APP_NAME // 当前项目名称 CONTROLLER_NAME // 当前控制器名称 MODULE_N ...
- 国内ADSL用户的带宽一般都是1M、2M、3M的,理论上的下载速度分别是128K/S、256K/S、384K/S。
国内ADSL用户的带宽一般都是1M.2M.3M的,理论上的下载速度分别是128K/S.256K/S.384K/S. 1024/8===128 2048/8==256
- Struts调用DMI
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
- 常用的Hql语句(转)
原文地址:http://blog.csdn.net/v123411739/article/details/28644007 尊重原创,请访问原文地址 // HQL: Hibernate Que ...
- AngularJS-Basic(一)
MVC:作为DataModel的$scope 依赖注入DI 模块化Module Service Filter Two way DateBinding Directive Unit Testing&am ...
- java--xml文件读取(JDOM&DOM4J)
1.JDOM解析 首先导入额外的jar包: Build Path:jdom-2.0.6.jar 准备工做获取到子节点的集合: package com.imooc_xml.jdom.text; impo ...
- hihocoder-1274 自行车架(高维dp)
时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi的宿舍楼下有一块用于停自行车的区域.平时自行车都停得非常杂乱,于是楼长打算去买一排自行车架用来停车.自行车架一般有P个 ...