C# Stream.Read – 从流中读取数据

C#的Stream.Read方法作用是从当前流中读取指定数量的字节并将其存储到缓冲区中。

该方法的使用方法如下:

public virtual int Read(
    byte[] buffer,
    int offset,
    int count
)

参数说明:

  • buffer:字节型数组,是用来缓存读出的数据的。
  • offset:整数类型,是buffer参数中的偏移量,即从buffer数组的那个位置开始存储读出的数据。
  • count:整数类型,是要读取的字节数。

返回值:返回实际读取的字节数,如果已到达流的末尾,则返回值为零。

示例1:使用Stream.Read方法读取本地文件

using System;
using System.IO;
using System.Text;

namespace ReadFile
{
    class Program
    {
        static void Main(string[] args)
        {
            using (Stream stream = new FileStream("test.txt", FileMode.Open))
            {
                byte[] buffer = new byte[1024]; //缓冲区大小
                int readLength;
                while ((readLength = stream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    Console.WriteLine(Encoding.UTF8.GetString(buffer, 0, readLength)); //输出读取的字节数
                }
            }
        }
    }
}

示例2:从网络流中读取数据

using System;
using System.IO;
using System.Net;
using System.Text;

namespace ReadStream
{
    class Program
    {
        static void Main(string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.baidu.com");
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            using (Stream stream = response.GetResponseStream())
            {
                byte[] buffer = new byte[1024]; //缓冲区大小
                int readLength;
                while ((readLength = stream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    Console.WriteLine(Encoding.UTF8.GetString(buffer, 0, readLength)); //输出读取的字节数
                }
            }
        }
    }
}

以上是使用Stream.Read方法的完整攻略,希望能够帮助到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Stream.Read – 从流中读取数据 - Python技术站

(1)
上一篇 2023年4月19日
下一篇 2023年4月19日

相关文章

  • 深入多线程之:深入分析Interlocked

    深入多线程之:深入分析Interlocked 介绍 多线程编程中,线程间的数据共享是必不可少的。但是,由于线程间数据的竞争,可能会存在数据异常的情况。而Interlocked类提供了一些原子性的操作,避免了竞争,从而保证线程间数据的准确性。 Interlocked 类及其方法 Interlocked 类的定义为:用于在多个线程之间提供原子操作的方法。 Int…

    C# 2023年6月7日
    00
  • C#使用JArray和JObject封装JSON对象

    下面是关于C#使用JArray和JObject封装JSON对象的攻略: 1. 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,其以易于阅读和编写的方式进行了编码。同时,JSON格式也是一种标准的数据格式,被广泛应用于Web数据传输中。 在JSON格式中,数据类型包括了字符串、数字、布尔值、数组、对象…

    C# 2023年5月31日
    00
  • C#实现进制转换

    C#实现进制转换的完整攻略 在C#中,要实现进制转换可以使用Convert类提供的方法,主要有以下三个: ToInt32:将指定的字符串转换为32位带符号整数。 ToString:将指定的数字转换为字符串。 Parse:将字符串表示形式转换为等效的数字表示形式。 十进制转二进制 定义一个十进制数 int number = 123; 将其转换为二进制数 str…

    C# 2023年6月6日
    00
  • C#实现装饰器模式

    装饰器模式是一种常用的设计模式,它允许动态地向一个对象添加新的功能。 实现装饰器模式的步骤如下:1. 创建一个抽象组件类(Component),定义需要装饰的对象的共同接口。2. 创建一个具体组件类(ConcreteComponent),实现抽象组件类中定义的方法。3. 创建一个抽象装饰器类(Decorator),继承自抽象组件类,包含一个成员变量,用于保存…

    C# 2023年5月31日
    00
  • asp.net core webapi 服务端配置跨域的实例

    在ASP.NET Core WebAPI中配置跨域的实例如下: 在Startup.cs文件中添加跨域服务 在ConfigureServices方法中添加跨域服务。例如,以下代码添加了一个名为“AllowAll”的跨域服务: public void ConfigureServices(IServiceCollection services) { service…

    C# 2023年5月16日
    00
  • C#利用栈实现加减乘除运算

    C#利用栈实现加减乘除运算攻略 背景 在程序设计中,实现加减乘除运算是非常基础和常见的需求。而在计算表达式时,我们可以利用栈的特性来进行运算,这样可以避免使用递归等复杂的算法。本篇文章将介绍如何使用C#语言利用栈实现加减乘除运算。 方案 1.利用栈实现加减运算 我们可以使用两个栈numStack和opStack,分别存放数字和操作符。具体的方法如下: 1.1…

    C# 2023年5月31日
    00
  • C#实现毫秒转换成时分秒的方法

    C#实现毫秒转换成时分秒的方法 当我们需要将毫秒转换成可读性更好的时分秒格式时,可以使用C#中提供的方法来进行实现。以下是完整的攻略过程: 1. 使用TimeSpan.FromMilliseconds()方法将毫秒转换成TimeSpan对象 我们可以使用C#中的TimeSpan.FromMilliseconds()方法将毫秒转换成TimeSpan对象,该方法…

    C# 2023年6月1日
    00
  • CefSharp自定义缓存实现

    大家好,我是沙漠尽头的狼。 上文介绍了《C#使用CefSharp内嵌网页-并给出C#与JS的交互示例》,本文介绍CefSharp的缓存实现,先来说说添加缓存的好处: 提高页面加载加速:CefSharp缓存可以缓存已经加载过的页面和资源,当用户再次访问相同的页面时,可以直接从缓存中加载,而不需要重新下载和解析页面和资源,从而加快页面加载速度。 减少网络流量:使…

    C# 2023年4月27日
    00
合作推广
合作推广
分享本页
返回顶部