我想读取和写入文件。这行不通。
static void Main(string[] args)
{
StreamReader sr = new StreamReader(@"C:\words.txt");
StreamWriter sw = new StreamWriter(@"C:\words.txt");
}
如何在 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 文件夹来检查“Hello”是否存在
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");