From 92582165f1d4503f874ca5422d37d26acf8d021e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E7=8E=89=E9=9C=9E?= <2656731479@qq.com> Date: Wed, 23 Feb 2022 19:41:32 +0800 Subject: [PATCH 1/3] 02-22 --- .../module_count.js" | 21 +++++++++++++++++++ .../test.js" | 9 ++++++++ 2 files changed, 30 insertions(+) create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-22\346\250\241\345\235\227\345\214\226\345\212\240\345\207\217\344\271\230\351\231\244/module_count.js" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-22\346\250\241\345\235\227\345\214\226\345\212\240\345\207\217\344\271\230\351\231\244/test.js" diff --git "a/\345\217\266\347\216\211\351\234\236/2022-02-22\346\250\241\345\235\227\345\214\226\345\212\240\345\207\217\344\271\230\351\231\244/module_count.js" "b/\345\217\266\347\216\211\351\234\236/2022-02-22\346\250\241\345\235\227\345\214\226\345\212\240\345\207\217\344\271\230\351\231\244/module_count.js" new file mode 100644 index 0000000..dedc845 --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-02-22\346\250\241\345\235\227\345\214\226\345\212\240\345\207\217\344\271\230\351\231\244/module_count.js" @@ -0,0 +1,21 @@ +var count = { + add: function add(x, y) { + return x + y; + }, + subtract: function subtract(x, y) { + return x - y; + }, + multiply:function multiply(x, y) { + return x * y; + }, + divide:function divide(x, y) { + return x / y; + } +} +function handle(x, y, symbol) { + if (isNaN(x) || isNaN(y)) { + throw Error("请输入数值"); + } + return count[symbol](x, y); +} +module.exports.handle = handle; \ No newline at end of file diff --git "a/\345\217\266\347\216\211\351\234\236/2022-02-22\346\250\241\345\235\227\345\214\226\345\212\240\345\207\217\344\271\230\351\231\244/test.js" "b/\345\217\266\347\216\211\351\234\236/2022-02-22\346\250\241\345\235\227\345\214\226\345\212\240\345\207\217\344\271\230\351\231\244/test.js" new file mode 100644 index 0000000..562cf1d --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-02-22\346\250\241\345\235\227\345\214\226\345\212\240\345\207\217\344\271\230\351\231\244/test.js" @@ -0,0 +1,9 @@ +let count = require('./module_count'); +try { + console.log(count.handle(2, 2, 'add')); + console.log(count.handle(9, 3, 'subtract')); + console.log(count.handle(3, 4, 'multiply')); + console.log(count.handle(24, 4, 'divide')); +} catch (error) { + console.log(error.message); +} \ No newline at end of file -- Gitee From b6d8d450c94de36e37f81287bcf1a2770948a935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E7=8E=89=E9=9C=9E?= <2656731479@qq.com> Date: Sun, 27 Feb 2022 14:18:04 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E2=80=9C22-25=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../index.js" | 18 ++++++++ .../index2.js" | 43 +++++++++++++++++++ ...02\346\255\245\345\206\231\345\205\245.js" | 32 ++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/index.js" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/index2.js" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-25\345\274\202\346\255\245\346\226\207\344\273\266\347\232\204\345\206\231\345\205\245/\345\274\202\346\255\245\345\206\231\345\205\245.js" diff --git "a/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/index.js" "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/index.js" new file mode 100644 index 0000000..56b2e28 --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/index.js" @@ -0,0 +1,18 @@ +// 作业,写一段代码,可以指定的创业多个文件,文件名中要有序号,写入的内容可以随机 + +// 引入模块 +let fs = require('fs') +files= []; + +function create(num){ + if (isNaN(num)) { + console.log("请输入数字") + } else { + for (let i = 1; i < num; i++) { + files[i] = fs.openSync(`${i}.txt`, "w"); + fs.writeSync(files[i], `${i}`); + fs.closeSync(files[i]) + } + } +} +create(6) \ No newline at end of file diff --git "a/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/index2.js" "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/index2.js" new file mode 100644 index 0000000..4f521e7 --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/index2.js" @@ -0,0 +1,43 @@ +// 引入fs模块 +let fs = require('fs'); + +let createFile = { + // 创建文件 + createPath:function(dir){ + // 文件夹可能存在 + if(fs.existsSync(dir)){ + return ; + } + // 不存在则创建该文件夹 + fs.mkdirSync(dir) + }, + + // 创建内容 + createContent:function(num){ + // 加引号转为字符串 + return num + '' + }, + + // 写入文件与内容 + createFile:function(filepath,content){ + console.log(filepath); + let fd = fs.openSync(filepath,'w') + fs.writeSync(fd,content) + fs.closeSync(fd) + }, + + handle:function(num,dir){ + // 目录不存在则创建目录 + this.createPath(dir) + + // 循环创建文件和内容 + for(let i = 1; i Date: Tue, 1 Mar 2022 22:03:38 +0800 Subject: [PATCH 3/3] 03-01 --- .../1.txt" | 1 + .../2.txt" | 1 + .../3.txt" | 1 + .../4.txt" | 1 + .../5.txt" | 1 + ...07\344\273\266\345\206\231\345\205\245.js" | 60 +++++++ ...73\345\217\226\347\254\224\350\256\260.js" | 152 ++++++++++++++++++ ...71\345\206\215\346\213\274\346\216\245.js" | 35 ++++ ...47\346\234\200\345\260\217\345\200\274.js" | 46 ++++++ 9 files changed, 298 insertions(+) create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/1.txt" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/2.txt" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/3.txt" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/4.txt" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/5.txt" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-02-25\345\274\202\346\255\245\346\226\207\344\273\266\347\232\204\345\206\231\345\205\245/00\345\274\202\346\255\245\346\226\207\344\273\266\345\206\231\345\205\245.js" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/00\346\226\207\344\273\266\350\257\273\345\217\226\347\254\224\350\256\260.js" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/01\345\206\231\345\205\245\346\226\207\344\273\266\350\257\273\345\217\226\345\206\205\345\256\271\345\206\215\346\213\274\346\216\245.js" create mode 100644 "\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/02\345\206\231\345\205\245\346\226\207\344\273\266\350\257\273\345\217\226\346\234\200\345\244\247\346\234\200\345\260\217\345\200\274.js" diff --git "a/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/1.txt" "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/1.txt" new file mode 100644 index 0000000..56a6051 --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/1.txt" @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git "a/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/2.txt" "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/2.txt" new file mode 100644 index 0000000..d8263ee --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/2.txt" @@ -0,0 +1 @@ +2 \ No newline at end of file diff --git "a/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/3.txt" "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/3.txt" new file mode 100644 index 0000000..e440e5c --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/3.txt" @@ -0,0 +1 @@ +3 \ No newline at end of file diff --git "a/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/4.txt" "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/4.txt" new file mode 100644 index 0000000..bf0d87a --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/4.txt" @@ -0,0 +1 @@ +4 \ No newline at end of file diff --git "a/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/5.txt" "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/5.txt" new file mode 100644 index 0000000..7813681 --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-02-24fs\345\206\231\345\205\245\346\226\207\344\273\266/5.txt" @@ -0,0 +1 @@ +5 \ No newline at end of file diff --git "a/\345\217\266\347\216\211\351\234\236/2022-02-25\345\274\202\346\255\245\346\226\207\344\273\266\347\232\204\345\206\231\345\205\245/00\345\274\202\346\255\245\346\226\207\344\273\266\345\206\231\345\205\245.js" "b/\345\217\266\347\216\211\351\234\236/2022-02-25\345\274\202\346\255\245\346\226\207\344\273\266\347\232\204\345\206\231\345\205\245/00\345\274\202\346\255\245\346\226\207\344\273\266\345\206\231\345\205\245.js" new file mode 100644 index 0000000..eb59663 --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-02-25\345\274\202\346\255\245\346\226\207\344\273\266\347\232\204\345\206\231\345\205\245/00\345\274\202\346\255\245\346\226\207\344\273\266\345\206\231\345\205\245.js" @@ -0,0 +1,60 @@ +/** + * 一作业回顾: + * 作业:写一段程序,可以指定写入的文件数量与内容 + * 问题:主要功能集中,不太利于维护与扩展 + * + * + */ + + let fs = require("fs"); + //在fs模块中没Sync的函数是异步函数 + //open(path, flags[, mode]) + //path 路径 + // flags 标识 r w a(append) + // mode 不需求 + // callback 一个回调函数 + // 异步函数是没返回值都是通过callbak 回调函数去处理 + // 1.回调的‘写入完成’后输出 ? 2.回调的‘写入完成’先输出? + // 计算机基础知识 程序是载入的内存,cpu 去调度执行---- + // 文件存在计算机哪? 磁盘速度跟cpu相比?cpu快 + // open cpu 发指令-----磁盘---扫磁道去文件 openSync在同步函数中呢,cpu 等磁盘共做完---下一步 + // 异步就是不让cpu闲着,因为cpu快,在代码中可能会碰到阻塞的场景(磁盘,网络....) + + + fs.open("./async6.txt", 'w', function (err,fd) { + //console.log(arguments); + if(err){ + console.log(err); + + }else{ + let msg='today我们学习异步文件写入,有点晕哦oooo' + //fs.writeSync(fd,msg); + //fs.closeSync(fd); + bf =Buffer.from(msg); + fs.write(fd,bf,function(err,writeNum,bf2){ + console.log(err); + console.log(writeNum); + //buffer 转字符串 bf.toString() + console.log(bf2.toString()); + console.log("done!"); + }); + /** + * today天我们学习异步文件写入,有点晕哦 0123------------------------------------------------50 + write的参数: + fd: number, 文件描述符 + buffer: TBuffer,buffer 对象 + offset: number | undefined | null, 偏移量--就是buffer的下标偏移的个数 + length: number | undefined | null, 长度---写入的个数 + position: number | undefined | null, 位置 + callback: 回调函数 err,writeNum,buffer + */ + console.log("写入完成!"); + //异步的文件关闭 + fs.close(fd,function(err){ + console.log("我被关闭了哦,别想我"); + console.log(err); + }) + } + }); + console.log('study node fs async '); + \ No newline at end of file diff --git "a/\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/00\346\226\207\344\273\266\350\257\273\345\217\226\347\254\224\350\256\260.js" "b/\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/00\346\226\207\344\273\266\350\257\273\345\217\226\347\254\224\350\256\260.js" new file mode 100644 index 0000000..26bfd43 --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/00\346\226\207\344\273\266\350\257\273\345\217\226\347\254\224\350\256\260.js" @@ -0,0 +1,152 @@ +/** + * 文件的写入 + * 1. 1.1 同步的 底层 开发 写入 关闭 1.2简单的同步文件写入 + * 2. 2.1 异步的 底层 开发 写入 关闭 2.2简单的异步文件写入 + * + * cpu --->内存 ---->磁盘 ---->网络 + * + * cpu--->指令(磁盘去执行) + * + * fopenSync 返回 fd cpu 休息 睡觉 + * + * 异步 + * fopen 没返回值,相对同步多个闭包函数 + * + * + * + * 文件的读取 + * 2.1 同步文件的读取 + * + * + */ + + let fs = require("fs"); + + /** + * stat 文件的描述信息 + */ + + let info=fs.statSync('./openSync.txt'); + + //console.log(info); + + /** + * 在fs里面同步函数,函数名有sync的就是同步 + * 在fs里面异步函数是没有返回值,都是通过闭包去处理 + */ + let fd=fs.openSync("./openSync.txt"); + /** + * fs.readSync(fd, buffer, offset, length, position) + * fd 就是文件描述符 + * buffer buffer的对象 + * offset 偏移量 + * length 文件的读取长度 + * postition 位置 + * return number 读取的文件长度 + * + * bf[0]=11 + * bf[1]=22 + * + */ + let bf = Buffer.alloc(info.size); + let result=fs.readSync(fd,bf,0,info.size); + /** + * bf就是把内容读取进来 + */ + //console.log(bf.toString()); + /*** + * 关闭文件 + */ + + fs.closeSync(fd); + /** + * + */ + //console.log(result); + + /** + * 简单的同步文件读取,底层就是封装了 + * fopenSync --readSync ---closeSync + * fs.readFileSync(path[, options]) + * path 文件路径 + */ + + // let bf2=fs.readFileSync('./openSync.txt'); + // console.log(bf2.toString()); + let bf2=fs.readFileSync('./openSync.txt',{encoding:"utf8",flag:'r'}); + //console.log(bf2.toString()); + + + /** + * 异步的文件读取 + * open + * path:文件路劲 + * flag:标识 r w a + * callback + * + */ + let filePath='./openAsync.txt' + fs.open(filePath,'r',function(err,fd){ + let info=fs.statSync(filePath); + let bf3=Buffer.alloc(info.size) + // fs.readSync(fd,bf3,0,info.size); + // console.log(bf3.toString()); + /** + * fd: number, + buffer: TBuffer, + offset: number, + length: number,文件的长度 + position: ReadPosition | null, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void + */ + fs.read(fd,bf3,0,info.size,null,function(err,length,bf4){ + + if(err){ + console.log(err); + }else{ + //console.log(bf4.toString()); + } + + // fs.close(fd,function(err){ + + // }) + + }) + + }) + + /** + * 简单的异步文件读取 + * readFile + * path:路劲 + * { + * encoding + * flag:r 在读取文件时,不能使用w 针对10.16.0版本 + * } + + */ + + fs.readFile('./openAsync2.txt',{encoding:'utf8',flag:'r'},function(err,string){ + if(err){ + console.log(err) + }else{ + console.log(string) + } + }); + + + /** + * 作业: + * 1.先创建100个文件,文件内容自便,创建完以后呢,读取每一个文件,并且把每一个文件的内容拼接起来 + * + * //进阶可不教 2.先创建100个文件,随机写入数字,可以是整数,也可以是浮点,把最大值和最小值都取出来 + * + * + * 文件读取: + * + * readFileSync();简单同步的文件读取,返回值buffer + * + * readFile(); 简单的异步文件读取 callback里面返回(err,string) + * + * + */ \ No newline at end of file diff --git "a/\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/01\345\206\231\345\205\245\346\226\207\344\273\266\350\257\273\345\217\226\345\206\205\345\256\271\345\206\215\346\213\274\346\216\245.js" "b/\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/01\345\206\231\345\205\245\346\226\207\344\273\266\350\257\273\345\217\226\345\206\205\345\256\271\345\206\215\346\213\274\346\216\245.js" new file mode 100644 index 0000000..b468245 --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/01\345\206\231\345\205\245\346\226\207\344\273\266\350\257\273\345\217\226\345\206\205\345\256\271\345\206\215\346\213\274\346\216\245.js" @@ -0,0 +1,35 @@ +// 先创建100个文件,文件内容自便,创建完以后呢,读取每一个文件,并且把每一个文件的内容拼接起来 + +// 引入模块 +let fs = require('fs'); + +function create(num) { + // 声明一个变量用来拼接读取出来的内容 + let result = ""; + + if (isNaN(num)) { + // 当输入的不是数字 + console.log("请输入数字"); + } else { + // 用循环创建文件,并写入内容为随机数 + for (let i = 1; i <= num; i++) { + let filename = i + '.txt'; + let randomNum = Math.round(Math.random() * 100) + let str = randomNum.toString() + fs.writeFileSync(filename,str ); + } + // 再利用循环将文件里的内容读取出来,并将他们拼接 + for (let j = 1; j <= num; j++) { + let filename = j + '.txt'; + let filecontent = fs.readFileSync(filename); + // 读取出来的为buffer,利用toString()将其转换为string + result += filecontent.toString(); + } + + } + console.log(result); + +} + +create(100) + diff --git "a/\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/02\345\206\231\345\205\245\346\226\207\344\273\266\350\257\273\345\217\226\346\234\200\345\244\247\346\234\200\345\260\217\345\200\274.js" "b/\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/02\345\206\231\345\205\245\346\226\207\344\273\266\350\257\273\345\217\226\346\234\200\345\244\247\346\234\200\345\260\217\345\200\274.js" new file mode 100644 index 0000000..707cd1d --- /dev/null +++ "b/\345\217\266\347\216\211\351\234\236/2022-03-01\345\206\231\345\205\245\346\226\207\344\273\266/02\345\206\231\345\205\245\346\226\207\344\273\266\350\257\273\345\217\226\346\234\200\345\244\247\346\234\200\345\260\217\345\200\274.js" @@ -0,0 +1,46 @@ +// 2.先创建100个文件,随机写入数字,可以是整数,也可以是浮点,把最大值和最小值都取出来 + +// 引入模块 +let fs = require('fs'); + +function create(num) { + + if (isNaN(num)) { + console.log("请输入数字"); + } else { + // 用循环创建文件,并写入内容为随机数 + for (let i = 1; i <= num; i++) { + let file = i + ".txt"; + let randomNum = (Math.random() * 100).toFixed(2); + let randomstr = randomNum.toString() + fs.writeFileSync(file, randomstr) + } + // 再利用循环将文件里的内容读取出来,并将他们放入一个数组中 + let arr = []; + for (let j = 1; j <= num; j++){ + let file = j + ".txt"; + let filecontent = fs.readFileSync(file); + let filecontents = filecontent.toString(); + arr.push(filecontents) + } + console.log(arr); + // 声明变量 + let max = arr[0]; + let min = arr[0]; + // 遍历数组 + for(let z = 0; zmax){ + max = +arr[z] + } + if(+arr[z]