ASP.NET Core – Byte, Stream, File 基础

2022/2/19 17:12:03

本文主要是介绍ASP.NET Core – Byte, Stream, File 基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言

以前的文章: Stream 基础和常用 和 IO 常用.

这篇主要是做一个整理, 方便要用的时候 warm up.

 

基本术语和概念

先过一边基本术语和概念:

Bits

Bits 就是比特. 它是最小的单位, 1 bit = 1 个二进制, 0 或者 1.

通信的时候就是通过电压高低, 来表示 0 或 1. 在由二进制来表达万物 (就好比摩斯密码一样啦) 

Bytes

Bytes 是字节. 1 byte = 8 bits. 它也是一个单位.

Stream

Stream 是流的概念. 如果 bytes 是鱼, 那么 stream 就是河流. 通信的时候就好像建立了河流. 然后上面有很多鱼游来游去.

Bytes encode

通信用的是二进制, 那自然是需要 encode 咯, 比如把 0 和 1 变成 alphabet (英文字母). 

1 个 alphabet 需要 1 byte 来表示, 而汉字需要 2 bytes 来表示 (也要 依据 encode 手法, 但大概可以这样去理解).

还有很多种 encode 的方式, 比如: ASCII, Unicode, UTF, Base64

char, char[], string

char 是 C# 中用来装字母的, 1 char = 2 bytes, 所以它也可以撞汉字.

char[] 就是很多字母咯.

string 是 char[] 的封装. 它包含了对 char[] 的操作, 比如 char[] 的 length 是不可以变的, 但 string 可以.

 

ASP.NET Core Stream 结构

ASP.NET Core build-in 了许多 Class 来处理 Bytes, Stream 这些冬冬. 

Stream(抽象类) > TextReader(抽象类) > StreamReader(实体类) > MemoryStream(实体类), FileStream(实体类) 等等

顾名思义, MemoryStream 是负责缓存的, FileStream 是文件的. 

 

串起来理解 & 运用场景

万物都是二进制

在数码世界里, 万物都是二进制 (bits) 0 或 1 来表示的, 1 个文件它储存在磁盘里就是二进制, 2 台电脑通信传输的依然是二进制.

这个是最底层的逻辑.

二进制如果表达万物?

0 和 1 对电脑来说 ok, 对人来说可不行, 所以需要转换. 二进制转换成英文字母, 汉字是有规范的, 这就是所谓的 ASCII, Unicode, UTF, 等等.

运用场景

假设, 系统的需求是让用户输入一段字母, 然后生成 1 个 word.txt 文件. 

当获取到 user input (string), 先把它转换成 bytes. 然后创建文件, 并把 bytes 写进去.

在开发种我们需要掌握好, encode (清楚如何 decode/encode bytes), file type (文件的类型), 读写 stream 的 bytes.

    

 



这篇关于ASP.NET Core – Byte, Stream, File 基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程