C# Window编程随记——两个常用的写文件的方法

C# Window编程随记——两个常用的写文件的方法

有时候,我们常常需要对一些文件(如:表格)中的数据读取之后,以一定的规律转换为更简单的格式,然后写到文本中(.txt或.bytes),这也是很多游戏表格数据进行数据打包之前常见的操作,这样有利于压缩数据空间和简化数据规则。

  • 以字符串的格式写入(覆盖和非覆盖)
  • 以二进制的格式写入(覆盖和非覆盖)

1.以字符串的格式写入(覆盖和非覆盖)

通过字符串格式写入到文件中的数据,文件中的内容在文本编辑器中可能完全被读取出来,不存在乱码和其他影响数据可读性的问题,但是,这样有时候不利于数据安全性的保护,而且数据所占用的空间也要大于用二进制方式写入时所占的空间。

(1)覆盖式写入:
覆盖式的写入方式有两种:
方法一:

//如果文件不存在,则创建;存在则覆盖
System.IO.File.WriteAllText(@""+_DataSavePath+"\\"+fileName+".bytes", data_str, Encoding.UTF8);

方法二:

StreamWriter sw = new StreamWriter(@"" + _DataSavePath + "\\" + fileName + ".bytes", false);

(2)非覆盖式(追加)写入:

//追加写入内容,不覆盖
StreamWriter sw = new StreamWriter(@"" + _DataSavePath + "\\" + fileName + ".bytes", true);

写入控制的关键在于第二个参数,它是一个bool类型的参数,当这个参数为true时,为追加写入方法,而当其值为false时,则与方法一种的效果是一致的,都是覆盖式写入方式。

2.以二进制的格式写入(覆盖和非覆盖)

通过二进制的形式写入文件的数据,部分数据(如:整型)会变成无法直接读取内容的二进制格式码,只有字符串保留了原本的可读性,这样可以适当地保护数据安全,也压缩了转换后文件所占用的空间。
(1)覆盖式写入:

FileStream myStream = new FileStream(@"" + _DataSavePath + "\\" + fileName + ".bytes", FileMode.OpenOrCreate, FileAccess.ReadWrite);
BinaryWriter myWriter = new BinaryWriter(myStream);
myWriter.Write(data_str);
myWriter.Close();
myStream.Close();

(2)非覆盖式(追加)写入:

FileStream myStream = new FileStream(@"" + _DataSavePath + "\\" + fileName + ".bytes", FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
BinaryWriter myWriter = new BinaryWriter(myStream);
myWriter.Write(data_str);
myWriter.Close();
myStream.Close();

你可能感兴趣的:(编程,压缩,字符串,二进制,数据)