Привет!
Пишу данные в бинарный файл:
Код | byte[] GetBytes(string str) { byte[] bytes = new byte[str.Length * sizeof(char)]; System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length); return bytes; }
FileInfo f = new FileInfo(@"test.dat"); using (FileStream fs = f.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read)) { using (BinaryWriter bw = new BinaryWriter(fs)) { byte[] bytes = GetBytes("Какой-то текст. And english."); bw.Write(bytes); } }
|
Хочу прочитать:
Код | private void Button_Click_4(object sender, RoutedEventArgs e) { FileInfo f = new FileInfo(@"test.dat"); using (FileStream fs = f.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using (BinaryReader br = new BinaryReader(fs)) { int bytesRead = 0; byte[] buffer = new byte[255]; StringBuilder result = new StringBuilder(); while ((bytesRead = br.Read(buffer, 0, buffer.Length)) != 0) { for (int i = 0; i <= bytesRead - 1; i++) { result.AppendFormat("{0:x2} ", buffer[i]); } char[] ch = System.Text.Encoding.UTF8.GetString(buffer).ToCharArray(); // вот тут я ожидаю что-то получить Array.Clear(buffer, 0, buffer.Length); } MessageBox.Show(result.ToString()); } } }
|
В помеченной мною строке я ожидаю получить какие-то буковки. Но вместо этого получаю такое:

Причем не русские, не английские буквы не отображаются. Подскажите, пожалуйста, как сделать, чтобы текст нормально прочитался? |