У меня есть файл, который содержит записи для данных и изображений сотрудников. Каждая запись для одного сотрудника и его данные, его образ и образ его жены. Я не могу изменить файловую структуруЧтение двоичных данных (изображений) из разделенного файла
Существуют разделители между текстовыми данными и изображениями.
Вот пример одной записи:
номер записи D01 = имя сотрудника = IMG1 = сотрудник изображения ~ \ IMG2 = жена изображение ^!\ г \ п
(D01 = & ! = IMG1 = & ~ \ IMG2 = & ^!) являются сепараторы
Это код, как файл был написан:
FileStream fs = new FileStream(filePath, FileMode.Create);
StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
BinaryWriter bw = new BinaryWriter(fs);
sw.Write(employeeDataString);
sw.Write("!=IMG1=");
sw.Flush();
bw.Write(employeeImg, 0, employeeImg.Length);
bw.Flush();
sw.Write(@"~\IMG2=");
sw.Flush();
bw.Write(wifeImg, 0, wifeImg.Length);
bw.Flush();
sw.Write("^!");
sw.Flush();
sw.Write(@"\r\n");
sw.Flush();
Итак, как читать этот файл?
Фундаментально, у вас есть проблемы, есть - если вы читаете данные изображения, чтобы определить длину файла там (если он даже поддерживает его!) вы не можете надежно обнаружить, когда файл закончится, и начнется следующая часть записи. В основном это разбитый формат файла. –
@JonSkeet полная запись заканчивается на «\ r \ n» –
И что заставляет вас думать, что файл изображения не может содержать байты, которые - при интерпретации текста - являются '\ r \ n'? –