我有这个文本文件包含不同的字段。有些字段可能包含二进制数据。我需要获取文件中的所有数据,但现在使用StreamReader时,它不会读取二进制数据块和数据。什么是解决这个问题的最佳解决方案?StreamReader和二进制数据
例子:
field1|field2|some binary data here|field3
现在我读这样的文件:
public static string _fileToBuffer(string 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;
}
编辑:我知道二进制领域的开始和结束位置。
我无法控制数据源,因此我只好以某种方式处理它。 – hs2d
@ hs2d:那么如果二进制数据包含ASCII(或使用任何编码)代表'|',会发生什么?前两个字段中是否有任何内容告诉您预期的长度? –
没有什么告诉我预期的长度。看看我的另一个问题。我使用模板来获取字段分隔符什么标记一个字段的结尾:[链接](http://stackoverflow.com/questions/6479505/c-template-parsing-and-matching-with-text-file) – hs2d