2010-10-08 125 views
1

我正在從TXT文件讀取數據,這需要我替換一些現有數據,然後將其寫回文件。問題是,當我將文本寫回文件時,文件中有特殊字符會被破壞。從文件讀取數據已損壞

例如,我在具有以下「rdrf +À[HIGH]」的文件「foo.txt」中有一個字符串。我的應用程序將文本讀入一個字符串,通過該行並用一個值替換[HIGH],然後寫回文件。問題是,特殊的文本字符被損壞。

下面是基礎代碼的縮寫版本:

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

如何從文件中讀取,而不破壞特殊文本字符?

感謝 周杰倫

回答

1

你需要一個合適的編碼,我認爲

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

試試這個:

 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(); 

從讀者和作者完成後記得處理。