1
.数值应保存在二进制文件
首先列举文本、二进制文件的操作(读写)方法:
方式
1
:
//
文本文件操作:创建
/
读取
/
拷贝
/
删除
using
System;
using System.IO;
class Test
{
string path = @"f:\t.txt";
publicstaticvoid Main()
{
//
创建并写入
(
将覆盖已有文件
)
if (!File.Exists(path))
{
//StreamWriter m=new
//StreamWriter(path,true,Encoding.Default,1);//ASCII,1 Encoding.Default
:即//UTF-8编码 这样就可以指定编码方式
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
}
}
//
读取文件
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
//
删除
/
拷贝
try
{
File.Delete(path);
File.Copy(path, @"f:\tt.txt");
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
方式
2
:
//
流文件(二进制)操作
private const string name = "Test.data";
public static void Main(String[] args)
{
//
打开文件
() ,
或通过
File
创建立如:
fs = File.Create(path, 1024)
FileStream fs = new FileStream(name, FileMode.CreateNew);
//
转换为字节
写入数据
(
可写入中文
)
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
//
字节数组
,
字节偏移量
,
最多写入的字节数
BinaryWriter w = new BinaryWriter(fs);
//
设置要写入的偏移量
fs.Position=fs.Length;
// fs.Write(info, 0, info.Length);
这个也可以
w.Close();
fs.Close();
//
打开文件
fs = new FileStream(name, FileMode.Open, FileAccess.Read);
//
读取
BinaryReader r = new BinaryReader(fs);
for (int i = 0; i < 11; i++)
{
Console.WriteLine(r.ReadInt32());
}
w.Close();
fs.Close();
在将一系列二进制数如方式
1
写入到
file.txt(
二进制
)
文件后,打开
file.txt
后显示的数据二进制数有些错误,有些正确。(与存入的不一样)
向文件中写入的
默认(也可以设置)
都是使用
UTF-8
编码
。打开
file.txt
是也是默认
UTF-8
编码。
若将其如方式
2
存入
二进制文件,则显示的数据一致。若将二进制数(整数)保存为文本文件出错。二进制文件是直接写入文件的(磁盘)没有经过编码和读取时的解码。