字节的二进制读取只返回一个值. C#
发布时间:2020-12-15 23:45:51 所属栏目:百科 来源:网络整理
导读:当我期待0,1,2,3时,控制台显示0,0. 这是修改后的版本:https://msdn.microsoft.com/en-us/library/system.io.binarywriter(v=vs.110).aspx using System;using System.IO;namespace testingfilereadwrite{ class Program{ const string FileName = "TestFile
当我期待0,1,2,3时,控制台显示0,0.
这是修改后的版本:https://msdn.microsoft.com/en-us/library/system.io.binarywriter(v=vs.110).aspx using System; using System.IO; namespace testingfilereadwrite { class Program { const string FileName = "TestFile.dat"; static void Main() { WriteDefaultValues(); DisplayValues(); Console.ReadKey(); } public static void WriteDefaultValues() { using (BinaryWriter writer = new BinaryWriter(File.Open(FileName,FileMode.Create))) { writer.Write(0); writer.Write(1); writer.Write(2); writer.Write(3); } } public static void DisplayValues() { byte byte1; byte byte2; byte byte3; byte byte4; if (File.Exists(FileName)) { using (BinaryReader reader = new BinaryReader(File.Open(FileName,FileMode.Open))) { byte1 = reader.ReadByte(); byte2 = reader.ReadByte(); byte3 = reader.ReadByte(); byte4 = reader.ReadByte(); } Console.WriteLine(byte1); Console.WriteLine(byte2); Console.WriteLine(byte3); Console.WriteLine(byte4); } } }` 为什么它只显示0?如何让它显示我需要的东西?另外,为什么当我使用字节以外的东西时,它会起作用,比如string或int. 解决方法
因为您正在向文件写入整数,并且前4个字节为0.
public static void WriteDefaultValues() { using (BinaryWriter writer = new BinaryWriter(File.Open(FileName,FileMode.Create))) { writer.Write((byte)0); writer.Write((byte)1); writer.Write((byte)2); writer.Write((byte)3); } } 试试吧. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |