整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

C#-文件操作类 FileStream 112

C#-文件操作类 FileStream 112

ileStream文件流是众多流中很重要的一种,其他还有网络流,内存流等,所有流都有一个共同的父类Stream(抽象类),文件流以字节数组的方式进行读取和写入,FileStream也是一个类,使用这个类及其方法必须先实例化一个对象

使用File静态类进行读取和写入有两大缺点:

1)只能读取写入文本的文件:只要通过记事本打开,文件内容不乱码就是文本文件,比如.cs .html结尾的文件;而以.doc .avi等结尾的文件通过记事本打开就会是一堆乱码

2)一次性读取读入内存:文件体量小还好,如果是体量大的比如2G,通过File的File.ReadAllLines()方法读取,会一次性读取到内存,非常占用CPU内存,弄不好就死机

文件与文件流的工作方式是:比如有两个大空水桶,一个是通过用另一个装满水的水桶一次性倒入空水桶将其装满;一个是通过比如脸盆分成多次向空水桶倒入水直至装满,至于两种方式的优劣,只能说是在某些条件下其中一种方式更好,俗话说具体情况具体分析

字节(byte)与兆(MB)的换算关系是1MB=1024KB=1048576字节(1024*1024)

通过FileStream的方法设置读取的大小(也叫缓冲区,以字节数组形式暂存)以循环方式,多次进行读取写入,也可以叫文件大拷贝

文件流读取

图中断点自己调试查看其读取的内容,都是些十进制数字(0-255)即二进制(01)转换十进制后的数字,自己查找资源自学其换算方式吧,不再赘述

目从net framwork升级到.net6后,发现.cshtm视图被打包到dll文件中了,可能微软为了提升速度吧,但是我们项目需求要求后台动态修改cshtml文件内容,所以不能对cshtml文件进行打包,类似早期的net framework默认就是不编译.cshtml文件。

废话不说话,直接上修改步骤。

步骤1:

nugut需要先添加Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation包引用。

services.AddRazorPages().AddRazorOptions(razor=>
    {
                // 自定义View的位置
              razor.ViewLocationExpanders.Add(new CustomViewLocationExpander());
   });
//AddRazorRuntimeCompilation视图动态编译
 services.AddControllersWithViews().AddRazorRuntimeCompilation();

在services.AddControllersWithViews()后添加.AddRazorRuntimeCompilation();

步骤2:

打开FolderProfile.pubxml文件,添加

线图

1.计算机网络如何运行

互联网采取client-server结构,client就是你的浏览器,server存储所有的文件。

cs架构

  • http/https

超文本传输协议,网络传输数据。

安全的http,需要来自第三方供应商的安全证书来保护连接并验证该站点是否安全。此安全证书称为SSL(安全套接字层)

  • dns
  • hosting
  • 浏览器
  • 域名

2.你应该知道的web开发者基本工具

2.1终端

在基于macOS和Linux的计算机上,自带bash终端。

Windows操作系统,可以访问通过WSL2(适用于Windows的Linux子系统)在UNIX的工作空间中使用WSL2。

  • bash
  • zsh
  • git bash

2.2设计

  • figma(推荐)
  • adobe xd

2.3浏览器

  • chrome(dev tools)

2.4文本编辑器

在熟练使用其中一种编辑器功能之前,不使用其它的。

  • vscode(推荐)
  • atom
  • sublime text

3.html

  • 最佳实践
  • seo
  • 语义 html
  • 表单与验证

4.css

4.1css基础

  • css grid

布局,包括位置,尺寸,对齐。

  • flexbox

css3中的布局模式。

  • 自定义属性

css变量,自定义实体。

4.2现代css

  • css模块
  • 样式化组件(styled components)

高级

4.3css框架

  • Tailwind css
  • bootstrap

4.4响应式设计

不同屏幕尺寸的适配

  • viewport

视口。移动设备出现后的概念。网页不再是固定大小。

  • rem units

根据W3C规范,rems单位是根元素上font-size的计算值,在根元素的font-size属性中指定时,rem单位是指属性的初始值。

  • css媒体查询(media queries)

在浏览器和设备环境与您可以指定的规则匹配时才应用CSS的方法

4.5css 预处理

  • sass(推荐)
  • postcss(简单易扩展)

4.6动画

  • 普通动画(plain css)
  • gsap

适合初学者。应用于web程序和游戏。

  • anime.js

选择你的栈

5.前端

5.1学习JavaScript

  • 基本语法
  • fetch api
  • json
  • es6/es7
  • typescript

5.2JavaScript栈

5.2.1推荐工具

  • git
  • github
  • npm script
  • prettier
  • eslint
  • axios
  • vscode插件
  • 浏览器开发者工具

5.2.2包管理

  • npm*
  • yarm

5.2.3模块打包

  • webpack
  • parcel
  • rollup


5.2.4前端框架

5.2.5pwa

5.3前端框架

5.3.1react

灵活

5.3.2vue

简单,灵活

5.3.3angular

5.3.4状态管理

  • react:redux,context api
  • vue:vuex
  • angular:services

5.3.5ssr-服务端渲染

  • vue:nuxt.js
  • react:next.js

5.3.6静态网站生成器

  • vue:gridsome,nuxt.js
  • react:gatsby,next.js

6.后端

6.1后端框架

  • node.js(javascript)
  • deno(js)
  • flask(pthon)

wsgi框架

  • django(python)

全栈web框架

6.2数据库

6.2.1关系型

  • mysql
  • postgresql

6.2.2nosql/云数据库

  • mongodb(推荐)
  • aws(易于扩展)
  • firebase(小型项目绝佳选择)

6.3APIs

6.3.1授权authentication

  • oauth
  • jwt(JavaScript Web令牌

6.3.2providers

  • auth0
  • firebase

6.4CMS(内容管理系统)

6.4.1传统

  • wordpress
  • drupal

6.4.2无头

  • netlify cms
  • strapl
  • prismic
  • storyblok

6.5部署

6.5.1需要学习的概念

  • 负载平衡(load balancing)
  • github actions
  • ssh
  • 监控monitoring
  • 安全security
  • ssl证书

6.5.2无服务器(serveless/FaaS)

  • aws lambda
  • netlify

6.5.3web服务器

  • apache
  • nginx

6.5.4hosting(网站托管,主机空间,虚拟主机服务)

  • 静态:netlify,github pages
  • heroku
  • aws
  • azure
  • linode

6.5.5测试

  • 单元测试
  • 集成测试
  • 功能测试

6.5.6虚拟化

  • docker
  • Kubernetes


参考

https://javascript.plainenglish.io/ultimate-web-developer-roadmap-for-2021-6758edd0bd3f