Чтение данных из файла становится поврежденным - PullRequest
1 голос
/ 09 октября 2010

Я читаю данные из файла TXT, который требует от меня заменить некоторые из существующих данных, а затем записать их обратно в файл. Проблема в том, что в файле есть специальные символы, которые повреждаются при записи текста обратно в файл.

Например, у меня есть строка в файле "foo.txt", которая имеет следующий "€ rdrf + À [HIGH]". Мое приложение считывает текст в строку, проходит через строку и заменяет [HIGH] значением, а затем записывает обратно в файл. Проблема в том, что специальные текстовые символы повреждены.

Вот сокращенная версия базы кода:

string fileText = System.IO.File.ReadAllText("foo.txt");
fileText= iPhoneReferenceText.Replace("[HIGH]", low);
TextWriter tw = new StreamWriter("Path");
tw.WriteLine(fileText);
tw.Close(); 

Как читать из файла, не повреждая специальные текстовые символы?

Спасибо Jay

Ответы [ 2 ]

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

Вам нужна соответствующая кодировка, я думаю

string fileText = System.IO.File.ReadAllText("foo.txt", Encoding.XXXX);
.
.
tw = new StreamWriter("path", Encoding.XXXX);
.
.

Где XXXX - одно из:

  System.Text.ASCIIEncoding
  System.Text.UnicodeEncoding
  System.Text.UTF7Encoding
  System.Text.UTF8Encoding
0 голосов
/ 05 марта 2012

Попробуйте это:

        string filePath = "your file path";
        StreamReader reader = new StreamReader(filePath);
        string text = reader.ReadToEnd();
        // now you edit your text as you want
        string updatedText = text.Replace("[HIGH]", "[LOW]");

        reader.Dispose(); //remember to dispose the reader so you can overwrite on the same file
        StreamWriter writer = new StreamWriter(filePath);
        writer.Write(text, 0, text.Length);
        writer.Dispose(); //dispose the writer
        Console.ReadLine();

Не забудьте утилизировать после окончания чтения и записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...