J'utilise ceci
for($number=0; $number < 5; $number++){
StreamWriter x = new StreamWriter("C:\\test.txt");
x.WriteLine(number);
x.Close();
}
si quelque chose est dans test.text, ce code ne le remplacera pas. J'ai 2 questions
1: how can I make it overwrite the file
2: how can I append to the same file
en utilisant C #
Essayez l'énumérateur 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
Le comportement par défaut de StreamWriters consiste à créer un nouveau fichier ou à le remplacer s'il existe. Pour ajouter au fichier, vous devrez utiliser la surcharge qui accepte un booléen et la définir sur true. Dans votre exemple de code, vous allez réécrire test.txt 5 fois.
using(var sw = new StreamWriter(@"c:\test.txt", true))
{
for(int x = 0; x < 5; x++)
{
sw.WriteLine(x);
}
}
Vous pouvez passer un deuxième paramètre à StreamWriter
à enable
ou disable
en ajoutant au fichier:
dans 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");
dans 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");
Vous pouvez commencer par utiliser FileStream, puis le transmettre à votre StreamWriter.
FileStream fsOverwrite = new FileStream("C:\\test.txt", FileMode.Create);
StreamWriter swOverwrite = new StreamWriter(fsOverwrite);
ou
FileStream fsAppend = new FileStream("C:\\test.txt", FileMode.Append);
StreamWriter swAppend = new StreamWriter(fsAppend);
Alors, quel est le résultat de votre code?
Je m'attendrais à ce que le fichier ne contienne que le chiffre 4, car le comportement par défaut est de créer/écraser, mais vous dites qu'il ne s'agit pas d'écraser?
Vous devriez pouvoir le faire écraser le fichier en faisant ce que vous faites, et vous pouvez l'ajouter en créant un FileStream avec FileMode.Append.