文件流

作者: 0说 | 来源:发表于2021-01-21 23:44 被阅读0次

写入流


const fs = require('fs');
// createWriteStream 写入流 一点一点往文件里写入
// 创建一个写入流
const ws = fs.createWriteStream('writeStream.txt', { flags: 'w', encoding: "utf-8" });

// 监听 文件打开
ws.on('open', (err) => {
    console.log('文件打开了')
})

// 监听 文件关闭
ws.on('close', (err) => {
    console.log('文件关闭了')
})

// 文件写入
ws.write('写入1', (err) => {
    if(err) {
        console.log(err)
    } else {
        console.log('写入1成功');
    }
})
ws.write('写入2', (err) => {
    if(err) {
        console.log(err)
    } else {
        console.log('写入2成功');
    }
})

ws.write('写入3', (err) => {
    if(err) {
        console.log(err)
    } else {
        console.log('写入3成功');
    }
})

ws.write('写入4', (err) => {
    if(err) {
        console.log(err)
    } else {
        console.log('写入4成功');
    }
})


// 文件写入关闭
ws.end(() => {
    console.log('文件写入关闭');
})

writeStream.txt

写入1写入2写入3写入4

读取流

const fs = require('fs');

// 创建一个读取流
// const rw = fs.createReadStream('writeStream.txt', {flags: 'r', encoding: 'utf-8'})
const rw = fs.createReadStream('mp4.mp4', {flags: 'r'})

// 监听文件打开
rw.on('open', () => {
    console.log('文件打开了');
})

// 监听文件读取完成了
rw.on('close', () => {
    console.log('文件流读取完成了');
})

// 监听每一批的数据
rw.on('data', (data) => {
    console.log('读取到的大小:' + data.length);
    console.log('读取到的数据', data);
})


// 监听文件关闭
rw.on('end', ()=> {
    console.log('文件关闭了');
})
文件打开了
读取到的大小:65536
读取到的数据 <Buffer bd a9 f4 7c 09 03 df c5 5c 12 86 0c 5e a1 7d 4a af 97 56 c6 4b 5f 82 41 1d 6f bb 60 ac 25 30 77 db e2 0e ef 0c e0 7a 10 f7 6f 70 a4 eb 6c 5d 79 ae a3 ... 65486 more bytes>
读取到的大小:65536
读取到的数据 <Buffer f3 2a ff 8f a9 92 ca 1c b1 33 48 39 98 b1 49 15 dc 60 2e 4c c6 f7 cf 12 d9 6c 25 9b 04 95 eb 00 df 91 a3 ed ed ba f1 b8 4f a1 50 9e e4 fd 15 06 b9 d6 ... 65486 more bytes>
读取到的大小:23368
读取到的数据 <Buffer 84 58 7b c1 e5 60 80 d1 ab 0f 6a 54 23 19 7f 9a 64 68 8e 9f 23 12 7b e6 77 e1 18 c3 1c a3 b1 24 c5 66 8b 60 35 b6 97 cb 28 61 53 bc 8f fa a1 b8 42 09 ... 23318 more bytes>
文件关闭了
文件流读取完成了

读取流与写入流结合

const fs = require('fs');

// 创建一个写入流
const rw = fs.createReadStream('a.mp4', {flags: 'r'})

// 创建一个读取流
const ws = fs.createWriteStream('b.mp4', { flags: 'w' })

rw.on('open', () => {
    console.log('文件打开');
})


rw.on('end', () => {
    console.log('读取文件完成');
    ws.end()
})

rw.on('data', (data) => {
    ws.write(data, (err) => {
        if(err) console.log(err);
        console.log('单批写入成功');
    })
})

文件流管道

const fs = require('fs');

// 创建一个写入流
const rw = fs.createReadStream('a.mp4', {flags: 'r'})

// 创建一个读取流
const ws = fs.createWriteStream('b.mp4', { flags: 'w' })

rw.on('open', () => {
    console.log('文件打开');
})


rw.on('end', () => {
    console.log('读取文件完成');
    ws.end()
})

rw.pipe(ws)


相关文章

  • 10.6-全栈Java笔记:常见流详解(四)

    上节我们讲到「Java中常用流:数据流和对象流」,本节我们学习文件字符流和文件缓冲流~ 文件字符流 前面介绍的文件...

  • 10.6-全栈Java笔记:常见流详解(四)

    上节我们讲到「Java中常用流:数据流和对象流」,本节我们学习文件字符流和文件缓冲流~ 文件字符流 前面介绍的文件...

  • 文件(流)

    1:Path类是专门用来操作文件路径的(Path类是静态类):当然用字符串的处理办法也能实现。 string st...

  • 文件流

    https://www.cnblogs.com/xdp-gacl/p/3634409.html 一、文件流的应用 ...

  • 文件流

    写入流 writeStream.txt 读取流 读取流与写入流结合 文件流管道

  • 流与文件-流

    写在书上 保存下来防止丢失

  • 13. IO流

    一、文件创建文件: 二、IO流分类 三、节点流FileInputStream文件字节输入流: 四、节点流FileO...

  • 文件上传(文件流)

    上传接口: web.xml配置 url

  • 管道

    以传统读写流方式复制大文件 以管道形式复制大文件 大文件压缩(链式流)

  • Java IO流(合并流和切割文件)

    合并流 切割文件 合并文件

网友评论

      本文标题:文件流

      本文链接:https://www.haomeiwen.com/subject/cnyjzktx.html