for($number=0; $number < 5; $number++){
StreamWriter x = new StreamWriter("C:\\test.txt");
x.WriteLine(number);
x.Close();
}
如果事情是在test.text,該代碼不會覆蓋它。我使用C#
for($number=0; $number < 5; $number++){
StreamWriter x = new StreamWriter("C:\\test.txt");
x.WriteLine(number);
x.Close();
}
如果事情是在test.text,該代碼不會覆蓋它。我使用C#
嘗試的FileMode枚舉:
FileStream fappend = File.Open("C:\\test.txt", FileMode.Append); // will append to end of file
FileStream fcreate = File.Open("C:\\test.txt", FileMode.Create); // will create the file or overwrite it if it already exists
2個問題
1: how can I make it overwrite the file
2: how can I append to the same file
您可以通過使用FILESTREAM,然後傳遞,爲您的StreamWriter的開始。
FileStream fsOverwrite = new FileStream("C:\\test.txt", FileMode.Create);
StreamWriter swOverwrite = new StreamWriter(fsOverwrite);
或
FileStream fsAppend = new FileStream("C:\\test.txt", FileMode.Append);
StreamWriter swAppend = new StreamWriter(fsAppend);
或'的StreamWriter swAppend =新的StreamWriter (新的FileStream(「C:\\ test.txt」,FileMode.Append));'爲一個班輪只是調用'writer.Close();'沖洗它寫在 –
StreamWriters默認行爲是,如果它的存在是爲了創建一個新的文件,或者將其覆蓋。要附加到文件,您需要使用接受布爾值的重載並將其設置爲true。在您的示例代碼中,您將重寫5次test.txt。
using(var sw = new StreamWriter(@"c:\test.txt", true))
{
for(int x = 0; x < 5; x++)
{
sw.WriteLine(x);
}
}
那麼,什麼是你的代碼的結果呢?
我期望文件只包含數字4,因爲默認行爲是創建/覆蓋,但是您說它不覆蓋?
你應該能夠通過做你正在做的事情來覆蓋文件,並且可以通過使用FileMode.Append創建FileStream來追加文件。
你可以傳遞第二個參數來StreamWriter
到enable
或disable
附加到文件:
在C#.Net
:
using System.IO;
// This will enable appending to file.
StreamWriter stream = new StreamWriter("YourFilePath", true);
// This is default mode, not append to file and create a new file.
StreamWriter stream = new StreamWriter("YourFilePath", false);
// or
StreamWriter stream = new StreamWriter("YourFilePath");
在C++.Net(C++/CLI)
:
using namespace System::IO;
// This will enable appending to file.
StreamWriter^ stream = gcnew StreamWriter("YourFilePath", true);
// This is default mode, not append to file and create a new file.
StreamWriter^ stream = gcnew StreamWriter("YourFilePath", false);
// or
StreamWriter^ stream = gcnew StreamWriter("YourFilePath");
當我使用'StreamWriter stream = new StreamWriter(「YourFilePath 「);'在C#中默認附加... – EluciusFTW
然後你可以從FileStream而不是直接從文件名本身創建'StreamWriter':'StreamWriter x = new StreamWriter(fcreate);' –