electronjs 文件IO

背景

想使用electron开发一款记事本软件,涉及到js的文件IO,在网上搜索了好久找到的都是误人子弟的文章,故在这里将自己的一些做法记录下来

读取文件

读取文件需要先使用electron提供的组件dialog调出文件选择窗口,然后读取相关的路径

const {dialog} = require('electron').remote;
this.path = dialog.showOpenDialog({properties: ['openFile']})[0];

设定要读取的文件大小
let buf = new Buffer(1024);
使用node的fs模块来读取文件,因为普通的js是没有权限读取

const fs = require('fs');
fs.open(this.path, 'r+', (err, fd) => {
    if (err) {
        return console.log(err);
    }
    fs.read(fd, buf, 0, buf.length, 0, (err, bytes) => {
        if (err) {
            console.log(err);
        }
        if (bytes > 0) {
            //buf.slice(0, bytes).toString()为读取到的内容
            this.codemirror.setValue(buf.slice(0, bytes).toString());
        }
    });
    // 关闭文件
    fs.close(fd, function (err) {
        if (err) {
            console.log(err);
        }
    });
});

写入文件

写入文件同样使用fs模块

fs.writeFile(this.path, this.codemirror.getValue(), (err) => {
    if (err) {
        console.log(err);
    } else {
        this.$message({
            message: '保存成功',
            type: 'success'
        });
    }
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 11,513评论 0 6
  • Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScr...
    FTOLsXD阅读 3,538评论 0 2
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 8,982评论 2 41
  • 文件系统模块是一个封装了标准的 POSIX 文件 I/O 操作的集合。通过require('fs')使用这个模块。...
    保川阅读 4,214评论 0 0
  • 你和我是在网上认识的,你是一位兵哥哥,而我只是个高中在校生,百无聊赖的生活,让我们在手机屏幕上相伴了快两年了,...
    修文儿阅读 4,003评论 0 0