C# 无法将文本写入.txt文件
我有一个Windows窗体应用程序,它应该将其配置数据存储在一个名为C# 无法将文本写入.txt文件,c#,winforms,C#,Winforms,我有一个Windows窗体应用程序,它应该将其配置数据存储在一个名为config.txt的文件中。我有这段代码,它在初始化表单时运行。以下是函数: string folderPath = @‘C:\Users\Public\Periodic_Clock\’; string filePath = @‘C:\Users\Public\Periodic_Clock\config.txt’; public Form1() { InitializeComponent(); once = 0
config.txt
的文件中。我有这段代码,它在初始化表单时运行。以下是函数:
string folderPath = @‘C:\Users\Public\Periodic_Clock\’;
string filePath = @‘C:\Users\Public\Periodic_Clock\config.txt’;
public Form1()
{
InitializeComponent();
once = 0;
if (!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
}
if (!File.Exists(filePath))
{
new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite);
File.WriteAllText(filePath, "Alarm" + Environment.NewLine + "Alarm Ringing!" + Environment.NewLine + 1);
}
else
{
}
notificationTitle = File.ReadLines(filePath).Skip(0).Take(1).First();
notificationText = File.ReadLines(filePath).Skip(1).Take(1).First();
}
差不多,我有一个应用程序,当计时器关闭时发送通知。我想使用此配置文件存储通知的自定义标题、文本和通知类型。(以便用户可以自定义通知的外观)我的目的是将第一行作为通知标题,第二行作为文本,第三行作为0-3之间的数字,以存储通知的类型(信息、错误等)
我无法让程序在文本文件中写入任何内容。它创建了它,但似乎完全跳过了我使用
File.writealText()
的部分。我使用了其他方法,如StreamWriter
,但没有向文本文档写入任何内容。代码现在跳过了writealText
部分,并在File.ReadLines
处创建了一个错误,它只是告诉我序列不包含任何元素。这里有什么问题?如何修复它?最后,我得到了以下代码:
public Form1()
{
InitializeComponent();
once = 0;
if (!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
}
try
{
FileStream config = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
config.Close();
StreamWriter writetext = new StreamWriter(filePath);
writetext.Write("Alarm");
writetext.WriteLine();
writetext.Write("Alarm Ringing!");
writetext.WriteLine();
writetext.Write("1");
writetext.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "Error!");
}
notificationTitle = File.ReadLines(filePath).Skip(0).Take(1).First();
notificationText = File.ReadLines(filePath).Skip(1).Take(1).First();
}
删除FileStream构造。另外,这是实际代码还是代码中也有try/catch块?为什么要打开文件并读取所有行两次?您只是误解了file.writealText的用法,以及其他调用。阅读文档。我建议您使用File.writeallines和File.ReadAllLines,不要使用其他调用。如果使用FileStream,您应该使用“using(…”等等。您可以询问问题出在哪里,这样我就可以告诉您,您的
新FileStream
将打开文件进行写入,但是writealText
也会尝试这样做。您不能同时进行两次写入。此外,您提到了一个错误,但没有提供详细信息。