.NET: чтение / запись двоичной строки - PullRequest
0 голосов
/ 14 октября 2010

РЕДАКТИРОВАТЬ: не отвечать; Я нашел решение самостоятельно.

У меня есть код, который делает это:

using (var stream = new FileStream(args[1], FileMode.Create))
{
 using (var writer = new BinaryWriter(stream))
 {
  writer.Write(ip.Iso3166CountryCode);
  ...
 }
}

Iso3166CountryCode - это string с двумя символами («США»).

Когда я пытаюсь прочитать «US» из файла:

// line is a byte[] from the file with the first 1024 bytes
UnicodeEncoding.Default.GetString(line.Take(2).ToArray());

Я не получаю "US" назад, я возвращаю некоторые странные символы ASCII. Как мне прочитать два символа кода страны из этого двоичного файла?

РЕДАКТИРОВАТЬ: НИКОГДА НЕ УМ. Я изменил writer.Write(ip.Iso3166CountryCode) на writer.Write(UnicodeEncoding.Default.GetBytes(ip.Iso3166CountryCode)), и это работает.

1 Ответ

1 голос
/ 14 октября 2010

Попробуйте изменить writer.Write(ip.Iso3166CountryCode) на writer.Write(UnicodeEncoding.Default.GetBytes(ip.Iso3166CountryCode)), это должно работать!:)

...