Конвертировать байтовый массив в DataTable
Я читаю файл bin, который содержит данные в байтовом формате, а затем преобразую в формат DataTable. Но проблема в том, что читается только одна строка, когда файл содержит 3 строки.
byte[] bytedata = File.ReadAllBytes("Output1.bin");
DataTable data = new DataTable();
BinaryFormatter bformatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
stream = new MemoryStream(bytedata);
data = (DataTable)bformatter.Deserialize(stream);
stream.Close();
1 ответ
Решение
const int MAX_BUFFER = 2048;
byte[] Buffer = new byte[MAX_BUFFER];
int BytesRead;
DataTable data = new DataTable();
using (System.IO.FileStream fileStream = new FileStream("Output1.bin", FileMode.Open, FileAccess.Read))
while ((BytesRead = fileStream.Read(Buffer, 0, MAX_BUFFER)) != 0)
{
string text = (Convert.ToBase64String(Buffer));
BinaryFormatter bformatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
stream = new MemoryStream(Buffer);
data = (DataTable)bformatter.Deserialize(stream);
stream.Close();
}
Это рабочий код. Он читает все данные из файла в файловом потоке, а затем ByteArray
и, наконец, в DataTable.