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

广州动画制作公司南昌seo排名公司

广州动画制作公司,南昌seo排名公司,做网站建设的平台,昆山规模的网站建设公司有哪些目录 1. Stream 类 2. MemoryStream 类 3. FileStream 类 4. StreamReader 和 StreamWriter 类 5. NetworkStream 类 6. CryptoStream 类 总结 流(Stream)是处理数据输入和输出的核心抽象。流表示一个字节序列的读取或写入操作,它是一…

目录

1. Stream 类

2. MemoryStream 类

3. FileStream 类

4. StreamReader 和 StreamWriter 类

5. NetworkStream 类

6. CryptoStream 类

总结


 

流(Stream)是处理数据输入和输出的核心抽象。流表示一个字节序列的读取或写入操作,它是一种通用的方式来处理各种数据源和目标,例如内存、文件、网络等。.NET 提供了多种流类来满足不同的需求,以下是常见的流处理类及其用法:

1. Stream 类

  • 概述:Stream 是所有流类的基类,它是一个抽象类,定义了流的基本操作,如读取、写入、定位等。
  • 常用方法
    • Read(byte[] buffer, int offset, int count):从流中读取字节到缓冲区。
    • Write(byte[] buffer, int offset, int count):将字节从缓冲区写入流。
    • Seek(long offset, SeekOrigin origin):设置流中的当前位置。
    • Flush():清除缓冲区并确保所有数据写入底层设备。
    • Close():关闭流并释放资源。
  • 注意:Stream 是抽象类,不能直接实例化,需要使用其派生类。

2. MemoryStream 类

  • 概述:MemoryStream 表示存储在内存中的流。它允许将数据以字节数组的形式存储,并提供对这些数据的快速访问。
  • 典型用途
    • 在内存中临时存储数据。
    • 将对象序列化为字节数组或将字节数组反序列化为对象。
    • 与其他流类结合使用,作为中间缓存。
  • 示例代码
using System;
using System.IO;class Program
{static void Main(){byte[] data = { 72, 101, 108, 108, 111 }; // "Hello" 的 ASCII 字节using (MemoryStream ms = new MemoryStream()){ms.Write(data, 0, data.Length); // 写入数据ms.Position = 0; // 重置位置以便读取byte[] buffer = new byte[ms.Length];ms.Read(buffer, 0, buffer.Length); // 读取数据Console.WriteLine(System.Text.Encoding.UTF8.GetString(buffer)); // 输出: Hello}}
}

 


3. FileStream 类

  • 概述:FileStream 用于对文件进行读写操作。它允许将数据直接与磁盘上的文件交互。
  • 典型用途
    • 读取和写入文件内容。
    • 处理大文件时分块读取或写入。
  • 示例代码:
using System;
using System.IO;class Program
{static void Main(){string filePath = "example.txt";using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)){byte[] data = System.Text.Encoding.UTF8.GetBytes("Hello, FileStream!");fs.Write(data, 0, data.Length); // 写入数据到文件}using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)){byte[] buffer = new byte[fs.Length];fs.Read(buffer, 0, buffer.Length); // 从文件读取数据Console.WriteLine(System.Text.Encoding.UTF8.GetString(buffer)); // 输出: Hello, FileStream!}}
}

 


4. StreamReader 和 StreamWriter 类

  • 概述:StreamReader 和 StreamWriter 是基于字符的流类,专门用于处理文本数据。
    • StreamReader:从流中读取字符数据。
    • StreamWriter:将字符数据写入流。
  • 典型用途
    • 读取或写入文本文件。
    • 处理编码问题(如 UTF-8、ASCII 等)。
  • 示例代码
using System;
using System.IO;class Program
{static void Main(){string filePath = "example.txt";// 写入文本using (StreamWriter writer = new StreamWriter(filePath)){writer.WriteLine("Hello, StreamReader/StreamWriter!");}// 读取文本using (StreamReader reader = new StreamReader(filePath)){string content = reader.ReadToEnd();Console.WriteLine(content); // 输出: Hello, StreamReader/StreamWriter!}}
}

 


5. NetworkStream 类

  • 概述:NetworkStream 用于通过网络套接字(Socket)进行数据传输。它是 System.Net.Sockets 命名空间的一部分。
  • 典型用途
    • 实现客户端和服务器之间的数据通信。
    • 处理 TCP/IP 协议的数据流。
  • 示例代码(服务器端):
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;class Program
{static void Main(){TcpListener listener = new TcpListener(IPAddress.Any, 12345);listener.Start();Console.WriteLine("Waiting for connection...");using (TcpClient client = listener.AcceptTcpClient())using (NetworkStream stream = client.GetStream()){byte[] buffer = new byte[1024];int bytesRead = stream.Read(buffer, 0, buffer.Length);string message = Encoding.UTF8.GetString(buffer, 0, bytesRead);Console.WriteLine("Received: " + message);byte[] response = Encoding.UTF8.GetBytes("Message received!");stream.Write(response, 0, response.Length);}listener.Stop();}
}

 


6. CryptoStream 类

  • 概述:CryptoStream 用于加密或解密数据流。它结合了流操作和加密算法。
  • 典型用途
    • 对敏感数据进行加密后存储或传输。
    • 解密加密的数据流。
  • 依赖库:System.Security.Cryptography。
  • 示例代码(简单加密):
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;class Program
{static void Main(){using (Aes aes = Aes.Create()){byte[] key = aes.Key;byte[] iv = aes.IV;string original = "Secret Message";byte[] encrypted;using (MemoryStream msEncrypt = new MemoryStream()){using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, aes.CreateEncryptor(key, iv), CryptoStreamMode.Write))using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)){swEncrypt.Write(original);}encrypted = msEncrypt.ToArray();}Console.WriteLine("Encrypted: " + Convert.ToBase64String(encrypted));}}
}

 


总结

.NET 中的流处理类提供了灵活且强大的工具来处理各种数据源和目标。根据具体需求选择合适的流类,可以显著提高开发效率和程序性能。以下是一些选择建议:

  • 如果需要处理内存中的数据,使用 MemoryStream。
  • 如果需要读写文件,使用 FileStream。
  • 如果需要处理文本数据,使用 StreamReader 和 StreamWriter。
  • 如果需要网络通信,使用 NetworkStream。
  • 如果需要加密或解密数据,使用 CryptoStream。

 

http://www.dtcms.com/wzjs/359666.html

相关文章:

  • ps做网站效果图制作过程东莞推广系统
  • 凡科可以做淘客网站吗怎么交换友情链接
  • 哪些网站是phpwind做的宁波网站推广找哪家公司
  • 河北建设工程信息网登陆郑州网络优化实力乐云seo
  • 做个网站软件多少钱中国有几个搜索引擎
  • 如何制作app演示视频seo综合查询接口
  • 域名买来可以做网站吗收录网站有哪些
  • 厦门快速建网站今日山东新闻头条
  • 阿里云服务器可以做下载类网站吗广州百度关键词搜索
  • 毕设做网站答辩会要求当场演示吗营销策略有哪些4种
  • 网上代理 建网站广告网站留电话
  • dede程序数据库还原图文教程★适合dede网站迁移苏州做网站哪家比较好
  • 广东网站制作公司郑州seo外包顾问
  • 网页设计制作一个网站百度快照手机入口
  • 著名食品包装设计的案例seo教程网站优化推广排名
  • 苏州网站建设营销q479185700刷屏2345网址导航是病毒吗
  • 上海公司网页设计宁波专业seo服务
  • 网站制作软件都是什么软件网络营销专业代码
  • 济南冰河世纪网站建设关键词优化的策略有哪些
  • 做英文网站建设产品推广怎么做
  • wordpress 删除 版权应用商店关键词优化
  • wordpress图片延缓插件独立站seo搜索优化
  • 手机网站怎么放到桌面上谷歌建站
  • 成都哪里做网站巨量引擎广告投放平台官网
  • 赶集网天津网站建设百度咨询电话人工台
  • 电子商务网站设计模板活动推广方式都有哪些
  • 有什么网站可以做花生壳免费域名注册
  • 网站优化网络公司seo流程
  • 公司的建设网站公司网络热词英语
  • 想要找个网站做环评公示sem分析是什么