我有一个存储在我的应用目录中的文件,他有一些网站列表。 我没有任何问题阅读它,但当我想写它,我得到
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中。然后我从每件事物中清理文件,并用我制作的arry中的旧数据和新数据重写它。
我不知道这是否会有所帮助,但这里是文件proprites:
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;
}
答案 0 :(得分:3)
您必须将读/写文件访问权限用作third
参数 -
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
构造,因为它会关闭基础流,就像您需要手动open
和close
stream
个对象一样。
这也允许您在文件中写入。
有关更多信息,请参阅以下链接 -