nodejs-文件流

来源:互联网 发布:网页软件游戏开发 编辑:程序博客网 时间:2024/06/05 16:00

nodejs中把对象数据转换成流数据的对象(在此我们先介绍有关文件的)

fs.ReadStream 把文件数据转成流数据,用于读取文件的

方法:

 read 读取数据

setEcoding:设置编码

pause:暂停触发data事件(当读取来自文件的数据触发data事件)

resume:恢复触发data事件

pipe:设计一个数据管道,

unpipe:取消数据管道

事件

open:当文件打开时触发

readable:可以读时候触发

data:读取文件数据时候触发

end:读完所有的文件触发

error:读取错误时候触发

close:读取流对象关闭时候触发

fs.WriteStream 把流数据转换成对象数据,用于写文件的

方法:

write:写入数据

end:当没有数据要写入流中代用该方法

事件:

drain:当write返回fasle时候触发(缓冲区已经满了),

finish:当调用end方法(没有数据要写入流中了)

pipe:用于读取数据流调用了pipe方法时候触发

unpipe:用于读去数据流代用了unpipi方法时候触发

error:写入时候产生错误


使用一个readstream创建一个吧文件转成流数据的对象

var  fs=require("fs");
var optations={
     flag:"r",
     encoding:"utf-8",
     autoClose:true,
     stat:0,
     end :3
}
var file=fs.createReadStream('./wather.txt',optations)
console.log(file);

file.pause();

file.on("open",function(fd){
    console.log("打开文件");
})
file.on("data",function(data){
   console.log("读取数据");
   console.log(data);
})
file.on("error",function(err){
   console.log("读取数据shibao");
 
})
file.on("close",function(){
   console.log("读取数据对象关闭");
 
})
file.on("end",function(){
   console.log("读取数据完成了");
 
})

setTimeout(function(){file.resume()},1000);

运行结果



把一个文件写入另一个文件

var  fs=require("fs");
var optations={
     flag:"r",
     encoding:"utf-8",
     autoClose:true,
     start:0,
     end :3
}
var optationout={
     flags:"a",
     encoding:"utf-8",
     start:0    
}
var file=fs.createReadStream('./wather.txt',optations)
var out=fs.createWriteStream('./watherout.txt',optationout)
out.on("open",function(fd){
    console.log("打开写入文件");
})
file.on("open",function(fd){
    console.log("打开文件");
})
file.on("data",function(data){
   console.log("读取数据");
   out.write(data);
})
file.on("error",function(err){
   console.log("读取数据shibao");
 
})
file.on("close",function(){
   console.log("读取数据对象关闭");
 
})
file.on("end",function(){
    out.end("写入完成","utf-8",function(){
        console.log("读取数据完成了,共写入"+out.bytesWritten+"个字节");
    })
   
 
})




利用管道写入数据

var fs=require("fs");
var file=fs.createReadStream('./watherout.txt');
var out=fs.createWriteStream('./watherout1.txt');

file.pipe(out,{end:false})
file.on("end",function(){
   out.end("ok")
})


0 0
原创粉丝点击