Tôi có tệp văn bản này chứa những trường khác nhau. Một số trường có thể chứa dữ liệu nhị phân. Tôi cần phải nhận được tất cả các dữ liệu trong tập tin nhưng ngay bây giờ khi sử dụng StreamReader thì nó sẽ không đọc khối dữ liệu nhị phân và dữ liệu những gì đến sau đó. Điều gì sẽ là giải pháp tốt nhất để giải quyết vấn đề này?StreamReader và dữ liệu nhị phân
Ví dụ:
field1|field2|some binary data here|field3
Ngay bây giờ tôi đọc trong file như thế này:
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;
}
EDIT: Tôi biết các vị trí bắt đầu và kết thúc của các lĩnh vực nhị phân.
Tôi không có quyền kiểm soát nguồn dữ liệu vì vậy tôi chỉ phải giải quyết nó bằng cách nào đó .. – hs2d
@ hs2d: Vậy điều gì xảy ra nếu dữ liệu nhị phân bao gồm ASCII (hoặc bất kỳ mã hóa nào được sử dụng) đại diện cho '|'? Có điều gì trong hai trường đầu tiên cho bạn biết độ dài mong đợi không? –
không có gì cho tôi biết chiều dài dự kiến. Nhìn vào câu hỏi khác của tôi. Im sử dụng mẫu để lấy dấu phân cách trường đánh dấu phần cuối của một trường: [link] (http://stackoverflow.com/questions/6479505/c-template-parsing-and-matching-with-text-file) – hs2d