我有这个代码在编写二进制文件时可以工作:
using (BinaryWriter binWriter =
new BinaryWriter(File.Open(f.fileName, FileMode.Create)))
{
for (int i = 0; i < f.histogramValueList.Count; i++)
{
binWriter.Write(f.histogramValueList[(int)i]);
}
binWriter.Close();
}
这段代码从硬盘上的 DAT 文件读回:
fileName = Options_DB.get_histogramFileDirectory();
if (File.Exists(fileName))
{
BinaryReader binReader =
new BinaryReader(File.Open(fileName, FileMode.Open));
try
{
//byte[] testArray = new byte[3];
int pos = 0;
int length = (int)binReader.BaseStream.Length;
binReader.BaseStream.Seek(0, SeekOrigin.Begin);
while (pos < length)
{
long[] l = new long[256];
for (int i = 0; i < 256; i++)
{
if (pos < length)
l[i] = binReader.ReadInt64();
else
break;
pos += sizeof(Int64);
}
list_of_histograms.Add(l);
}
}
catch
{
}
finally
{
binReader.Close();
}
但我想要做的是添加到编写代码以将更多三个流写入文件,如下所示:
binWriter.Write(f.histogramValueList[(int)i]);
binWriter.Write(f.histogramValueListR[(int)i]);
binWriter.Write(f.histogramValueListG[(int)i]);
binWriter.Write(f.histogramValueListB[(int)i]);
但第一件事是我如何编写所有这些并将其放入文件中,以便通过字符串或其他东西来识别它,所以当我读回文件时,我将能够将每个列表放入一个新列表中?
第二件事是我现在如何读回文件以便将每个列表添加到新列表中?现在,我很容易编写一个列表读取并将其添加到列表中。但是现在我添加了更多三个列表,那么我该怎么做呢?
谢谢。