gpt4 book ai didi

c# - 阅读后重写文本文件

转载 作者:行者123 更新时间:2023-11-30 22:24:07 26 4
gpt4 key购买 nike

我有一个文件存储在我的应用程序目录中,他有一些站点列表。我读起来没有任何问题,但是当我想写信给它时,我得到了

System.ArgumentException: Stream is not writeable

这是我访问文件的方式:

  FileStream theTextFileStream = new FileStream(Environment.CurrentDirectory + "/fourmlinks.txt",FileMode.OpenOrCreate);

这是让我期待的功能:

public static void WriteNewTextToFile(string text, FileStream theFile)
{
string fileText = GetAllTextFromFile(theFile);
ArrayList fileLIst = populateListFromText(fileText);

using (StreamWriter fileWriter = new StreamWriter(theFile))
{
fileWriter.Write(String.Empty);
for (int i = 0; i < fileLIst.Count; i++)
{
fileWriter.WriteLine(fileLIst[i].ToString());
}
}
}

该函数读取旧文本和新文本并将其添加到数组中。然后我清理文件中的所有东西,并用我制作的 arry 中的旧数据和新数据重写它。

我不知道这是否有帮助,但这是文件属性:

Build Action: None
Copy To Out Put Directory: Copy always

为什么我不能重写文件?

这是我用来读取文件内容的函数:

public static string GetAllTextFromFile(FileStream theFile)
{
string fileText = "";

using (theFile)
{
using (StreamReader stream = new StreamReader(theFile))
{
string currentLine = "";
while ((currentLine = stream.ReadLine()) != null)
{
fileText += currentLine + "\n";
}

}
}

return fileText;

}

最佳答案

您必须使用读/写文件访问权限作为第三个参数-

FileStream theTextFileStream = new FileStream(Environment.CurrentDirectory + "/fourmlinks.txt",FileMode.OpenOrCreate, FileAccess.ReadWrite
);

重要 - 删除 using(theFile) 语句:

public static string GetAllTextFromFile(FileStream theFile)
{
string fileText = "";

using (StreamReader stream = new StreamReader(theFile))
{
string currentLine = "";
while ((currentLine = stream.ReadLine()) != null)
{
fileText += currentLine + "\n";
}

}


return fileText;

}

不要在你的情况下使用 using 构造,因为它会关闭底层流,因为在你的情况下你必须手动 openclose 对象。

这也将允许您写入文件。

有关更多信息,请参阅以下链接 -

关于c# - 阅读后重写文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12942818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com