2012-11-25 59 views
0

我有一種方法可以從文本文件文件中編輯單詞並將其顯示在命令提示符中。現在我試圖製作一種方法來編輯文本文件中的單詞並將其寫入新文件。我還想提一下,我不能使用File或Regex類,因爲我不允許將它用於我的任務。這裏是我的StreamReader的代碼:如何使用StreamWriter在C#中編輯文本文件?

public void EditorialControl(string fileName, string word, string replacement) 
{    
    List<string> list = new List<string>(); 
    using (StreamReader reader = new StreamReader(directory + fileName)) 
    { 
     string line; 
     while ((line = reader.ReadLine()) != null) 
     {      
      line = line.Replace(word, replacement); 
      list.Add(line); 
      Console.WriteLine(line); 
     } 
     reader.Close(); 
    }  
} 

這裏是我到目前爲止的代碼爲StreamWriter的:

public void EditorialResponse(string fileName, string word, string replacement, string saveFileName) 
{ 
    using (StreamWriter writer = new StreamWriter(directory + saveFileName, true)) 
    { 
     { 
      string input = directory + fileName; 
      string line = input.Replace(word, replacement); 
      writer.Write(line);      
     } 
     writer.Close(); 
    } 
} 

我能加入,使StreamWriter的打開文件,編輯文字,寫它到一個新的文件或可能使用StreamReader方法在StreamWriter中進行這些更改?感謝您對StreamWriter

回答

3

這裏......

public void EditorialResponse(string fileName, string word, string replacement, string saveFileName) 
{ 
    StreamReader reader = new StreamReader(directory + fileName); 
    string input = reader.ReadToEnd(); 

    using (StreamWriter writer = new StreamWriter(directory + saveFileName, true)) 
    { 
     { 
      string output = input.Replace(word, replacement); 
      writer.Write(output);      
     } 
     writer.Close(); 
    } 
} 
2
public IList<string> GetEditedContent(string fileName, string word, string replacement) 
{    
    List<string> list = new List<string>(); 
    using (StreamReader reader = new StreamReader(directory + fileName)) 
    { 
     string line; 
     while ((line = reader.ReadLine()) != null) 
     {      
      line = line.Replace(word, replacement); 
      list.Add(line); 
      Console.WriteLine(line); 
     } 
     reader.Close(); 
    }  
    return list; 
} 

    // Example how write list to a file. 
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines2.txt")) 
    { 
     foreach (string listItem in list) 
     { 
      file.WriteLine(line); 

     } 
    } 

例子C# Programming Guide

How to: Write to a Text File (C# Programming Guide)

0

你可以有如此簡單的代碼,它應該編輯「 filename.txt「並追加新的文本。

using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\TestFolder\filename.txt", true)) 
{ 
file.WriteLine("text to edit/append ..."); 
}