c#stream

在C#中,Stream 是一个抽象基类,用于处理输入和输出的字节序列。它是所有输入/输出 (I/O) 操作的基础,包括文件操作、网络操作、内存操作等。Stream 类提供了一组方法和属性,使得可以对数据进行读取、写入和定位。下面是一些Stream类的基本使用方法:

  1. 创建一个FileStream并写入数据:
csharp 复制代码
using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 创建文件流
        using (FileStream fs = new FileStream("data.txt", FileMode.Create))
        {
            // 将数据写入文件
            byte[] data = new byte[] { 65, 66, 67, 68, 69 };
            fs.Write(data, 0, data.Length);
        }
    }
}
  1. 读取FileStream中的数据:
csharp 复制代码
using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 打开文件流
        using (FileStream fs = new FileStream("data.txt", FileMode.Open))
        {
            // 读取文件中的数据
            byte[] buffer = new byte[1024];
            int bytesRead = fs.Read(buffer, 0, buffer.Length);
            Console.WriteLine("Data read from file: " + Encoding.UTF8.GetString(buffer, 0, bytesRead));
        }
    }
}
  1. 使用MemoryStream进行内存操作:
csharp 复制代码
using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 使用内存流写入数据
        using (MemoryStream ms = new MemoryStream())
        {
            byte[] data = new byte[] { 70, 71, 72, 73, 74 };
            ms.Write(data, 0, data.Length);

            // 读取内存流中的数据
            ms.Position = 0;
            byte[] buffer = new byte[1024];
            int bytesRead = ms.Read(buffer, 0, buffer.Length);
            Console.WriteLine("Data read from memory stream: " + Encoding.UTF8.GetString(buffer, 0, bytesRead));
        }
    }
}

上述示例演示了如何使用 FileStreamMemoryStream 进行基本的读取和写入操作。Stream 类还有许多其他派生类,如 NetworkStream, CryptoStream 等,可根据不同的需求选择合适的流类型来进行I/O操作。

相关推荐
呆呆敲代码的小Y10 小时前
【游戏开发】Lua 与 C# 交互原理解析
c#·lua·交互·热更新·lua与c#交互·游戏热更新
用户2986985301410 小时前
PDF 转纯文本(TXT)免费攻略:轻松提取文字内容
人工智能·后端·c#
呆呆敲代码的小Y11 小时前
【游戏开发】C# 中的迭代器
java·开发语言·c#·迭代器
格林威1 天前
C# 相机Burst模式图像采集:使用相机内存配合OpenCvSharp和Halcon实现短时间的高速采集的方法
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
J总裁的小芒果1 天前
参数过多-分批传参
c#
典典分享指南1 天前
短视频分镜提示词:让 AI 出片的产品口播
java·c#·bash·composer·symfony
Z5998178411 天前
c#软件开发学习笔记--WPF(Canvas、数据绑定、MVVM模式、值转换器)
笔记·学习·c#
淡海水1 天前
05-03-栈队列-PriorityQueue-TElement-TPriority-NET6优先队列语义与四叉堆实现
服务器·前端·c#·priorityqueue·clr·telement
leonkay2 天前
C# 特性(Attribute)——【1】基础讲解
开发语言·青少年编程·面试·c#·.net·个人开发