[英]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.