发布时间:2019-09-08 09:11:38编辑:auto阅读(1961)
二进制文件
英文:Binary files - 包含在 ASCII 及扩展 ASCII 字符中编写的数据或程序指令的文件。计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本)文件,图形文件及文字处理程序等计算机程序都属于二进制文件。这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序阅读的简单文本文件。
从本质上来说他们之间没有什么区别,因为他们在硬盘上都有一种的存放方式--二进制,但是如果要对他们有些区分的话,那可以这样理解。我们现在的每个字符由一个或多个字节组成,每个字节都是用的-128—127之间的部分数值来表示的,也就是说,-128——127之间还有一些数据没有对应任何字符的任何字节。如果一个文件中的每个字节的内容都是可以表示成字符的数据,我们就可以称这个文件为文本文件,可见,文本文件只是二进制文件中的一种特例,为了与文本文件相区别,人们又把除了文本文件以外的文件称为二进制文件,由于很难严格区分文本文件和二进制文件的概念,所以我们可以简单地认为,如果一个文件专门用于存储文本字符的数据,没有包含字符以外的其他数据,我们就称之为文本文件,除此之外的文件就是二进制文件。 |
FileStream filestream = new FileStream(Filename, FileMode.Create);
BinaryWriter objBinaryWriter = new BinaryWriter(filestream); |
方法 |
说明 |
Close() |
关闭当前阅读器及基础流。 |
Read() |
已重载。 从基础流中读取字符,并提升流的当前位置。 |
ReadDecimal() |
从当前流中读取十进制数值,并将该流的当前位置提升十六个字节。 |
ReadByte() |
从当前流中读取下一个字节,并使流的当前位置提升1个字节。 |
ReadInt16() |
从当前流中读取2字节有符号整数,并使流的当前位置提升2个字节。 |
ReadInt32() |
从当前流中读取4字节有符号整数,并使流的当前位置提升4个字节。 |
ReadString() |
从当前流中读取一个字符串。字符串有长度前缀,一次7位地被编码为整数。 |
using System;
using System.IO;
class BinaryRW
{
static void Main()
{
int i = 0;
char[] invalidPathChars = Path.InvalidPathChars;
MemoryStream memStream = new MemoryStream();
BinaryWriter binWriter = new BinaryWriter(memStream);
// 写入内存
binWriter.Write("Invalid file path characters are: ");
for (i = 0; i < invalidPathChars.Length; i++)
{
binWriter.Write(invalidPathChars[i]);
}
// 用作生成编写器的内存流同样作为生成读取器的内存流
BinaryReader binReader = new BinaryReader(memStream);
// 设置流的起点
memStream.Position = 0;
// 从内存中读取数据,并把数据写入控制台
Console.Write(binReader.ReadString());
char[] memoryData = new char[memStream.Length - memStream.Position];
for (i = 0; i < memoryData.Length; i++)
{
memoryData[i] = Convert.ToChar(binReader.Read());
}
Console.WriteLine(memoryData);
}
} |
方法 |
说明 |
Close() |
关闭当前的 BinaryWriter 和基础流。 |
Flush() |
清理当前编写器的所有缓冲区,使所有缓冲数据写入基础设备。 |
Write() |
已重载。 将值写入当前流。 |
using System;
using System.IO;
class BinaryRW
{
static void Main()
{
using (BinaryWriter binWriter = new BinaryWriter(File.Open(fileName, FileMode.Create)))
{
binWriter.Write(aspectRatio);
binWriter.Write(lookupDir);
binWriter.Write(autoSaveTime);
binWriter.Write(showStatusBar);
}
}
} |
上一篇: C#学习笔记(3)——枚举
下一篇: [Python学习记录]——Hello
48820
47876
38655
35824
30244
26993
26037
20865
20658
19027
446°
531°
551°
563°
544°
528°
596°
660°
781°
844°