JS宏实例:自创FS对象读取文本文件或CSV文件数据

在js宏进阶专栏中,详细的讲解了面向对象编程的一些基础知识,比如ES6类、构造函数、this指向性等等。并且详细介绍了JS宏中自带的文件系统FileSystem对象。今天,我们运用这些知识,对JS宏中的FileSystem对象进行加强与优化,开发出我们自己的文件系统FS。再利用FS来替代FileSystem对象读取或写入文件。

一、为什么要增强FileSystem

1、没有报错提示

JS宏中的FileSystem没有明确的报错,只是给一个boolean值做一个返回值,然而,在创建文件或目录时我们并不需要这样的返回值。其他高级语言中会有明确的报错提示,比如python,示例如下:

import os

os.mkdir(r'.\a\b')

如果给出详细的报错,方便我们捕获异常,随后对异常进行处理。

2、存在一些bug或方法名称不规范

比如:FileSystem.WriteFile方法,官方文档的解释是用于创建一个文件,且只有一个参数path,而实际上它有第二个参数data,就是你要写入的内容。经过测试,它不仅可以创建文件,还可以向指定文件中写入内容,而WriteFile从方法名上面来看,容易使开发者造成误解。因此文件的创建与写入方法应该分开定义。所以我们需要对他进行优化

3、缺少递归创建文件或文件夹的方法

在JS宏的文件系统中,并没有提供递归创建文件夹或文件的相关方法,因此我们需要自行编写逻辑定义。

二、优化思路

明确了JS宏中的文件系统的不足之处,我们可以针对它做一些改进。本次案例将采用ES6类的语法来定义。

1、自定义详细的报错信息

既然JS宏中缺少相关的报错信息,那么我们可以自己定义。根据JS宏进阶篇章的内容,我们可以通过继承JS自带的Error对象来定义报错信息,示例如下:

//定义报错类型FileNotFound
class FileNotFound extends Error {
    constructor(message) {
        super(message);
        this.name = "FileNotFoundError";
    }
}

//定义报错类型文件已存在
class FileExists extends Error {
	constructor(message) {
        super(message);
        this.name = "FileExistsError";
    }
}

有了我们定义的两种报错,我们就要运用到接下来的开发之中。例如:找不到文件,我们可以调用FileNotFound 来抛出异常。

2、构思优化逻辑

在这之前,我们需要定义FS对象,如下所示:

class FS {
	
	constructor() {}

}

如果你需要节约内存,那么我们可以开启单例模式:

class FS {
	
    static instance = null;

	constructor() {
        if (FS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jackispy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值