簡體   English   中英

如何在C#中讀寫文件

[英]How to both read and write a file in C#

我想要讀取和寫入文件。 這不起作用。

static void Main(string[] args)
{
    StreamReader sr = new StreamReader(@"C:\words.txt");
    StreamWriter sw = new StreamWriter(@"C:\words.txt");
}

我如何在C#中讀取和寫入文件?

您需要一個單獨的流,為讀取和寫入打開。

FileStream fileStream = new FileStream(
      @"c:\words.txt", FileMode.OpenOrCreate, 
      FileAccess.ReadWrite, FileShare.None);

不要忘記簡單的路線:

    static void Main(string[] args)
    {
        var text = File.ReadAllText(@"C:\words.txt");
        File.WriteAllText(@"C:\words.txt", text + "DERP");
    }
var fs = File.Open("file.name", FileMode.OpenOrCreate, FileAccess.ReadWrite);
var sw = new StreamWriter(fs);
var sr = new StreamReader(fs);

...

fs.Close();
//or sw.Close();

關鍵是用FileAccess.ReadWrite標志打開文件。 然后,您可以使用初始FileStream創建所需的任何Stream / String / Binary Reader / Writers。

這個主題似乎回答了你的問題: 同時讀寫一個文件

基本上,您需要的是聲明兩個FileStream,一個用於讀取操作,另一個用於寫入操作。 Writer Filestream需要以“追加”模式打開您的文件。

您可以嘗試這樣:每次運行此代碼時,都會在bin-> debug文件夾中自動創建“Filename.txt”文件,或者您可以指定文件的路徑,如:@“C:/ ...”。 你可以通過轉到bin - > debug文件夾來檢查“你好”

PS不要忘記在此代碼片段之后添加Console.Readline(),否則控制台將不會出現。

TextWriter tw = new StreamWriter("filename.txt");
        String text = "Hello";
        tw.WriteLine(text);
        tw.Close();

        TextReader tr = new StreamReader("filename.txt");
        Console.WriteLine(tr.ReadLine());
        tr.Close();

由@Ipsita制作改進代碼 - 用於異步讀/寫文件I / O.

readonly string logPath = @"FilePath";
...
public async Task WriteToLogAsync(string dataToWrite)
{
    TextReader tr = new StreamReader(logPath);
    string data = await tr.ReadLineAsync();
    tr.Close();

    TextWriter tw = new StreamWriter(logPath);
    await tw.WriteLineAsync(data + dataToWrite);
    tw.Close();
}
...
await WriteToLogAsync("Write this to file");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM