首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#如何将long类型数组写入二进制文件

在C#中,将long类型数组写入二进制文件的方法如下:

  1. 使用FileStream创建一个二进制文件流
  2. 使用BinaryWriter将数组写入文件流
  3. 关闭文件流

以下是一个示例代码:

代码语言:csharp
复制
using System;
using System.IO;

class Program
{
    static void Main()
    {
        long[] array = new long[] { 123456789, 987654321 };
        string fileName = "longArray.bin";

        WriteLongArrayToBinaryFile(array, fileName);
    }

    static void WriteLongArrayToBinaryFile(long[] array, string fileName)
    {
        using (FileStream fs = new FileStream(fileName, FileMode.Create))
        {
            using (BinaryWriter bw = new BinaryWriter(fs))
            {
                foreach (long value in array)
                {
                    bw.Write(value);
                }
            }
        }
    }
}

在这个示例中,我们创建了一个名为"longArray.bin"的二进制文件,并将一个包含两个long类型值的数组写入文件。使用BinaryWriter的Write方法将数组中的每个值写入文件。

注意:在实际应用中,请确保处理文件时使用适当的异常处理,以避免在出现错误时导致程序崩溃。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用.NET7和C#11打造最快的序列化程序-以MemoryPack为例

在用法方面,它与 C# 版 MessagePack 没有太大区别,只是将目标类型更改为部分类型。...C#二进制规范 MemoryPack 的标语是“零编码”。这不是一个特例,例如,Rust 的主要二进制序列化器bincode[12] 也有类似的规范。...C# 中的数组不仅是像 int 这样的基元类型,对于具有多个基元的结构也是如此,例如,具有 (float x, float y, float z) 的 Vector3 数组将具有以下内存布局。...此外,二进制文件本身不会告诉它是什么数据,因为它需要 C# 架构。 但是,它在以下方面优于 MessagePack。...性能,尤其是对于非托管类型数组 易于使用的 AOT 支持 扩展多态性(联合)构造方法 支持循环引用 覆盖反序列化 打字稿代码生成 灵活的基于属性的自定义格式化程序 在我个人看来,如果你在只有 C#的环境中

1.7K20

位运算操作

字节数组long/int之间的相互转换 java中 long类型占用8个字节,int占用 4 个字节, 那么如何将它们转换为 字节数组。 为什么有将long转换为字节数组的需求呢?...接着向socket流写入一个long类型的数据,这个数据表示文件名的长度,然后再将文件名转换为字节数组写入流中,然后再写入一个long类型的数据,这个long类型的数据表示整个文件的长度,最后写入文件二进制字节...,下一个文件再按照这个规则写入流中。...[1562227670881.png] 在上面的场景中就用到了需要将int, long类型的值以 字节数组的方式写入到流中,那么读取解析的时候,又需要将字节数组转换为int或者long。...[1562229786116.png] 那么如何将每8位(1个字节)拆分出来,然后放到字节数组中?

1.2K21
  • 学习 CLR 源码:连续内存块数据操作的性能优化

    本文主要介绍 C# 命名空间 System.Buffers.Binary 中的一些二进制处理类和 Span 的简单使用方法,这些二进制处理类型是上层应用处理二进制数据的基础,掌握这些类型后,我们可以很容易地处理类型二进制数据之间的转换以及提高程序性能...C# 原语类型 按照内存分配来区分,C# 有值类型、引用类型; 按照基础类型类型来分,C# 有 内置类型、通用类型、自定义类型、匿名类型、元组类型、CTS类型(通用类型系统); C# 的基础类型包括:...整型: sbyte, byte, short, ushort, int, uint, long, ulong 实数类型: float, double, decimal 字符类型: char 布尔类型:...以 .Read...() 开头的方法,可以以字节为定位访问 byte 数组上的数据。 以 .Write...() 开头的方法,可以向某个位置写入数据。...byte 相互转换,例如 int 和 byte 互转,或者任意取出、写入基元类型的任意一个字节。

    1.3K10

    C# 网络下载器

    学习过C#中IO流部分的知识,或者你有其它的语言的基础,学习过其它语言的文件IO的基础,肯定了解过我们计算机中的数据都是二进制,那么网络中传输的数据本质上也是一样的。...我们在学习文件IO中,都会学习文件的读写操作,读操作(Output),将文件中的二进制数据读出来,写操作(Input)将内存中的二进制数据写入到硬盘中的文件中。...那么网络下载的本质就是文件的读写,其步骤分为以下几步: 1、向服务器发起请求 2、服务器接收到请求,返回响应,而这个响应是一个文件流数据 3、程序接收到响应,读取响应体中的二进制数据(读文件的操作) 4...、将读取的文件二进制数据写入到磁盘中 代码实现 现在已经了解了原理,那么就开始代码实现吧!...MediaType; // 3.2.文件的总大小 long?

    24030

    C# 温故而知新:Stream篇(—)

    C# 温故而知新:Stream篇(—) 什么是Stream?...字节对象都被存储为连续的字节序列,字节按照一定的顺序进行排序组成了字节序列 那什么关于流的解释可以抽象为下列情况: 打个比方:一条河中有一条鱼游过,这个鱼就是一个字节,这个字节包括鱼的眼睛,嘴巴,等组成8个二进制...,数据流会先进入到缓冲区中,而不会立刻写入文件,当执行这个方法后,缓冲区的数据流会立即注入基础流      MSDN中的描述:使用此方法将所有信息从基础缓冲区移动到其目标或清除缓冲区,或者同时执行这两种操作...而应使用该类的 Flush 或 Close 方法,此方法确保首先将该数据刷新至基础流,然后再将其写入文件。...,位移偏量和读取字节个数 和read方法不同的是 write方法中的第一个参数buffer已经有了许多byte类型 的数据,我们只需通过设置 offset和count来将buffer中的数据写入流中 *

    1.3K80

    004 C# 将Word表格数据批量写入Excel

    002 配置项目属性 自动化办公大多使用脚本运行,无需界面开发经验; 步骤:文件—新建—解决方案—新建控制台程序,在项目管理器右击项目名称—属性,将输出类型设置为Windows应用程序; 这样设置的目的是为了不显示...003 编码前准备 下面,我们一起来看一下,如何将Word表格数据写入Excel。 准备素材文件 3个Word文件(包含9张Word表格)、Excel空白文件。...思路梳理 自然语言描述:依次循环打开文件夹里3个Word文件; 将打开后文件中表格数据依次读入数组,再将数组数据一次性写入Excel。...文件提取准备 设置待提取目录; 准备200行5列数组数组行数初始化。...写入目标文件 利用AppDomain.CurrentDomain.BaseDirectory获取控制台项目启动目录,即Debug目录; 通过Workbooks.Open()打开Excel文件/工作簿;

    2.8K00

    C# 温故而知新:Stream篇(—)

    C# 温故而知新:Stream篇(—)   目录: 什么是Stream? 什么是字节序列?...字节对象都被存储为连续的字节序列,字节按照一定的顺序进行排序组成了字节序列 那什么关于流的解释可以抽象为下列情况: 打个比方:一条河中有一条鱼游过,这个鱼就是一个字节,这个字节包括鱼的眼睛,嘴巴,等组成8个二进制...,数据流会先进入到缓冲区中,而不会立刻写入文件,当执行这个方法后,缓冲区的数据流会立即注入基础流      MSDN中的描述:使用此方法将所有信息从基础缓冲区移动到其目标或清除缓冲区,或者同时执行这两种操作...而应使用该类的 Flush 或 Close 方法,此方法确保首先将该数据刷新至基础流,然后再将其写入文件。...,位移偏量和读取字节个数 和read方法不同的是 write方法中的第一个参数buffer已经有了许多byte类型 的数据,我们只需通过设置 offset和count来将buffer中的数据写入流中 *

    45230

    【深入浅出C#】章节 7: 文件和输入输出操作:处理文本和二进制数据

    二、二进制数据处理 2.1 二进制文件的读取和写入C#中,读取和写入二进制文件通常使用 BinaryReader 和 BinaryWriter 类。...这两个类可以让你以二进制格式读取和写入数据,适用于处理任何类型的数据,如整数、浮点数、字节数组等。...2.2 使用BinaryReader和BinaryWriter类 在C#中,BinaryReader 和 BinaryWriter 类是用于读取和写入二进制数据的重要工具。...2.3 读写基本数据类型和字节数组 当使用 BinaryReader 和 BinaryWriter 类读写基本数据类型和字节数组时,你可以使用它们提供的不同方法来实现。...以下是一些基本数据类型和字节数组的示例: 写入基本数据类型和字节数组: using System; using System.IO; class Program { static void Main

    71580

    C# 温故而知新:Stream篇(—)

    字节对象都被存储为连续的字节序列,字节按照一定的顺序进行排序组成了字节序列 那什么关于流的解释可以抽象为下列情况: 打个比方:一条河中有一条鱼游过,这个鱼就是一个字节,这个字节包括鱼的眼睛,嘴巴,等组成8个二进制...,数据流会先进入到缓冲区中,而不会立刻写入文件,当执行这个方法后,缓冲区的数据流会立即注入基础流 MSDN中的描述:使用此方法将所有信息从基础缓冲区移动到其目标或清除缓冲区,或者同时执行这两种操作...而应使用该类的 Flush 或 Close 方法,此方法确保首先将该数据刷新至基础流,然后再将其写入文件。.... *8: abstract long Seek(long offset, SeekOrigin origin) 大家还记得Position属性么?...,位移偏量和读取字节个数 和read方法不同的是 write方法中的第一个参数buffer已经有了许多byte类型 的数据,我们只需通过设置 offset和count来将buffer中的数据写入流中 *

    77890

    WebSocket系列之JavaScript中数字数据如何转换为二进制数据

    以Int和Short为例,说明JavaScript中的数字数据如何转换为二进制数据。 以Long类型为例,说明JavaScript中如何表示Long类型并且如何将其转换为二进制数据。...如何将二进制数据中转换为JavaScript中的数字数据。 本文与WebSocket并无太强关联,不过作为在WebSocket中传递二进制数据的基础知识储备,因此放入了此系列当中。...JavaScript中如何表示Long类型并且如何将其转换为二进制数据 通过DataView提供的API接口,我们知道了如何处理Short类型、Int类型、Float类型和Double类型。...如何将二进制数据中转换为JavaScript中的数据类型 当你知道了如何将数据转换为ArrayBuffer中存储的二进制数据后,就能够简单推测出如何进行反向操作——将数据从ArrayBuffer中读取出来...DataView(buffer); let long = Long.fromString('123'); // 数据写入过程 dataView.setInt16(0, 3); // 从第0个Byte

    2.4K20

    C# FileStream类

    C# FileStream类 在 C# 语言中文件读写流使用 FileStream 类来表示,FileStream 类主要用于文件的读写,不仅能读写普通的文本文件,还可以读取图像文件、声音文件等不同格式的文件...FileMode FileMode 枚举类型主要用于设置文件打开或创建的方式,具体的枚举值如下。 CreateNew:创建新文件,如果文件已经存在,则会抛出异常。...FileOptions FileOptions 枚举类型用于设置文件的高级选项,包括文件是否加密、访问后是否删除等,具体的枚举值如下。...Lock(long position, long length) 防止其他进程读取或写入 System.IO.FileStream void Unlock(long position, long length...byte[] bytes = Encoding.UTF8.GetBytes(msg); //向文件写入字节数组 fileStream.Write(bytes

    70110

    【深入浅出C#】章节 7: 文件和输入输出操作:文件读写和流操作

    C#中,你可以使用BinaryReader和BinaryWriter类来处理二进制文件的读取和写入。...同时,还需要小心处理数据的字节顺序和类型转换,以避免解析错误。 解析二进制文件是一个复杂的过程,因为每种类型二进制文件可能都有不同的结构和格式。...因此,在处理特定类型二进制文件时,建议查阅相关的文档和资料,以了解文件的结构和解析方法。 四、文件流操作 4.1 文件流的概念和用途 文件流是在计算机编程中用于读取和写入文件的一种数据流。...它允许程序通过流的形式从文件中读取数据或将数据写入文件中。文件流在文件操作中起着关键的作用,它可以用于处理文本文件二进制文件、图像文件等各种类型文件。...在C#中,我们可以使用不同类型的流来处理不同类型的数据。 在进行文件读写和流操作时,需要注意异常处理和资源管理,以确保程序的稳定性和高效性。

    2.8K50

    avro格式详解

    Avro提供了: 丰富的数据结构 可压缩、快速的二进制数据格式 一个用来存储持久化数据的容器文件 远程过程调用 与动态语言的简单集成,代码生成不需要读取或写入数据文件,也不需要使用或实现RPC协议。...一个json数组,表示嵌入类型的联合 schema中的类型由原始类型(也就是基本类型)(null、boolean、int、long、float、double、bytes和string)和复杂类型(record...】 1、数据编码 1)原始类型 对于null类型:不写入内容,即0字节长度的内容表示; 对于boolean类型:以1字节的0或1来表示false或true; 对于int、long:以zigzag的方式编码写入...对于bytes:先写入长度(采用zigzag编码写入),然后是对应长度的二进制数据内容 对于string:同样先写入长度(采用zigzag编码写入),然后再写入字符串对应utf8的二进制数据。...对于unions:先写入long类型的计数表示每个value值的位置序号(从零开始),然后再对值按对应schema进行编码。 对于records:直接按照schema中的字段顺序来进行编码。

    2.8K11

    .NET的各种对象在内存中如何布局

    其实C#提供了一些用于计算大小的操作符和API,但是它们都不能完全解决我刚才提出的问题。本文提供了一种计算值类型和引用类型实例所占内存字节数量的方法。...[read more…] [2] 如何将一个实例的内存二进制内容读出来? 在《如何计算一个实例占用多少内存?》中我们知道一个值类型或者引用类型的实例在内存中占多少字节。...,我们不仅可以采用纯“二进制”的方式在内存“绘制”一个指定引用类型的实例,还能直接通过改变二进制内容来更新实例的状态。...我在很多文章中都介绍过引用类型实例的内存布局(《以纯二进制的形式在内存中绘制一个对象》 和《如何将一个实例的内存二进制内容读出来?》...就内存布局来说,引用类型有两个独特的存在,一个是字符串,另一个就是数组。既然数组是引用类型,它自然按照引用类型兑现的内存布局规则。

    24220

    Go 语言中的 byte 数据类型详解

    引言 在计算机科学中,byte 是一种基本的数据类型,它通常用于表示 8 位二进制数据。在 Go 语言中,byte 是一种内置的数据类型,它可以用于表示任何 8 位二进制数据。...byte 数据类型通常用于存储和传输二进制数据,例如图像、音频和视频文件。 Go 语言中的 byte 数据类型 在 Go 语言中,byte 是一种内置的数据类型,它可以用于表示任何 8 位二进制数据。...在 Go 语言中使用 byte 数据 在 Go 语言中,byte 数据类型通常用于处理二进制数据。...以下是一个示例代码,演示了如何将字符串转换为 byte 数组,并将其写入文件: 在上面的示例代码中,我们首先定义了一个字符串 str,然后将其转换为 byte 数组 bytes。...接下来,我们使用 ioutil 包中的 WriteFile 函数将 byte 数组写入名为 output.txt 的文件中。

    1.2K10

    .NET C# 教程初级篇 1-1 基本数据类型及其存储方式

    .NET C# 教程初级篇 1-1 基本数据类型及其存储方式 全文目录 (博客园).NET Core Guide (Github).NET Core Guide 本节内容是对于C#基础类型的存储方式以及...C# 中两种数据存储方式 在C# 中,数据在内存中的存储方式主要分为在堆中存储和栈中存储。我们之前提到的值类型就是存储在栈中,引用类型的数据是存储在堆中,而数据是在栈中。...,int,long。...练习题 理论分析题 计算出int和long的数值范围 为什么在大部分提供科学计算或编程语言会存在精度问题?例如浮点数2.5在任何一种采用二进制计算的编程语言中也不是一个精确值?...(较难) 为什么引用类型即使不存储内容也需要内存空间? 试说明引用类型和值类型的优缺点 数组为什么需要初始化大小?如果是多维数组,不指定列宽可以吗?

    1.2K30

    Python数组的使用_算法高效性

    除此之外,数组还定义从文件读取(.frombytes)与写入(.tofile)的效率更高的方法。...数组定义好类型,就不能存放非定义类型的数据。 Luciano Ramalho 举了一个示例来说明数组的高效性。首先创建一个有 1000 万个随机浮点数的数组,然后写入数据,最后读取出数据。...可以看到创建 1000 万个随机浮点数的数组,并实现读写文件操作,仅需 0.01 s 左右。生成的文件大小约为 73M。...首先利用生成器表达式创建一个可迭代对象,** 表示乘方,接着生成一个双精度浮点数组类型码是 ‘d’); array 的 -1 索引值可以获取到数组中最后一个元素; “wb” 是以二进制写方式打开文件,...因为 array.tofile 是把数据写入二进制文件,所以比直接写入文本文件快很多。据统计,两者在性能上会相差近 7 倍。

    56210

    聊聊 dotnet 7 对 bool 与字符串互转的底层性能优化

    刚好的是在 C# 里面字符串的内存存储编码采用的是 Utf16 编码,采用 UTF16 编码的好处在于任意字符所在的内存的偏移量是可以完全瞬时确定的,可以快速和二进制进行映射从而提供更多优化的方向,例如刚好一个...destination 当成 byte 二进制,接着使用 BinaryPrimitives.WriteUInt64LittleEndian 将 "True" 字符串对应的整数写入二进制里面去,如此即可进行快速的完成写入字符串...既然学到了,那肯定要用上来呀,我在文件下载库的断点续传保存文件里面,就尝试使用此思想编写一点代码,代码请看 https://github.com/dotnet-campus/dotnetCampus.FileDownloader...DCFBPRTI 的 ASCII 编码的字符串的,现在更换为使用一个 long 代替,如下面代码 private static long GetHeader() { /...值 // 刚好将这个 ASCII 的 byte 数组转换为一个 long 的值 //var headerByteList = System.Text.Encoding.ASCII.GetBytes

    25860
    领券