バイナリファイルを書き込むときに機能するこのコードがあります:
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();
}
しかし、私がやりたいことは、書き込みコードに追加して、次のような 3 つのストリームをファイルに書き込むことです。
binWriter.Write(f.histogramValueList[(int)i]);
binWriter.Write(f.histogramValueListR[(int)i]);
binWriter.Write(f.histogramValueListG[(int)i]);
binWriter.Write(f.histogramValueListB[(int)i]);
しかし、最初のことは、どのようにこれらすべてを書き込んでファイルに作成し、文字列などで識別できるようにするので、ファイルを読み返すときに、各リストを新しいリストに入れることができますか?
2 つ目は、各リストが新しいリストに追加されるように、ファイルを読み戻す方法です。これで、1 つの List 読み取りを作成し、それを List に追加するのは簡単です。しかし、今、さらに3つのリストを追加したので、どうすればいいですか?
ありがとう。