当前位置: 首页 > article >正文

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

http://www.kler.cn/a/507699.html

相关文章:

  • vue自适应高度(缩放浏览器)
  • 1.17组会汇报
  • C 语言运算符的优先级和结合性
  • eBay账号安全攻略:巧妙应对风险
  • 前端【2】html添加样式、CSS选择器
  • vue3+elementPlus之后台管理系统(从0到1)(day1)
  • 一、1-2 5G-A通感融合基站产品及开通
  • HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (五、电影详情页的设计实现)
  • CTE与临时表:优劣势对比及使用场景分析
  • 简明docker快速入门并实践方法
  • 代码随想录算法训练营day23(0116)
  • 纯代码实现给WordPress添加文章复制功能
  • C#实现字符串反转的4种方法
  • openharmony/build/README_zh.md学习
  • 查找某个年龄段的用户信息TCP头格式为什么需要 TCP 协议? TCP 工作在哪一层?
  • Spring Boot 条件注解:@ConditionalOnProperty 完全解析
  • 整数的分离与合成
  • DNS介绍(3):应用场景
  • 数据结构之哈希表详解
  • 【Block总结】WTConv,小波变换(Wavelet Transform)来扩展卷积神经网络(CNN)的感受野
  • 【论文阅读笔记】基于YOLO和ResNet深度卷积神经网络的结直肠息肉检测
  • 【SQL】查询前三名
  • STM32 FreeRTOS 任务创建和删除实验(动态方法)
  • 机器学习和深度学习是人工智能(AI)领域的两个重要分支,它们都依赖于数学、统计学和计算机科学的基础知识。
  • Ubuntu系统备份与还原
  • ECCV2020 | YAILA | 又一种中间层攻击方法