StreamReader and binary data
I have this text file what contains different fields. Some fields may contain binary data. I need to get all the data in the file but right now when using StreamReader then it wont read the binary data block and data what comes after that. What would be the best solution to solve this problem?
Example:
field1|field2|some binary data here|field3
Right now i read in the file like this:
public static string _fileToBuffer(str开发者_如何学Pythoning Filename)
{
if (!File.Exists(Filename)) throw new ArgumentNullException(Filename, "Template file does not exist");
StreamReader reader = new StreamReader(Filename, Encoding.Default, true);
string fileBuffer = reader.ReadToEnd();
reader.Close();
return fileBuffer;
}
EDIT: I know the start and end positions of the binary fields.
use BinaryReader
StreamReader
isn't designed for binary data. It's designed for text data, which is why it extends TextReader
. To read binary data, you should use a Stream
, and not try to put the results into a string (which is, again, for text data).
In general, it's a bad idea to mix binary data and text data in a file like this - what happens if the binary data includes the | symbol for example? You might want to include the binary data in some text-encoded form, such as a base64 variant avoiding |.
精彩评论