J'essaie de créer un logiciel simple qui stocke des données dans un fichier journal TXT.
Ceci est mon code ce que j'ai réalisé est: le fichier est créé, mais rien n'est écrit dedans.
J'ai vérifié beaucoup de postes mais je n'ai pas pu trouver d'aide particulière. p> p>
5 Réponses :
Ajout d'un appel à Flush code> Le flux fonctionne. En effet, vous enveloppez le filtream code>. Streamwriter code> écrira sur le filtream code>, mais vous devez indiquer quand envoyer le flux code> code> au fichier actuel. De plus, vous pouvez échanger votre essayer enfin code> avec un à l'aide de code>:
enfermez votre Notez que le "code> streamwriter code> a un constructeur qui accepte deux paramètres, le nom du fichier à créer / ouvert et un drapeau pour indiquer que le fichier doit être ouvert. En mode append ou écrasé
Voir Documents de Streamwriter P> P> StreamWriter code> dans un bloc Utilisation pour vous assurer que tout est correctement fermé à la fin de l'utilisation du fichier, je ne pense pas que vous devez créer un filtream code> pour que cela fonctionne.
En effet, Flush () est la réponse; Cependant, j'utiliserais fichier.writealllines () code> à la place.
try
{
var fileName = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)+"/textme.txt";
var lines = AnimalShelter.AnimalList.Select(o=> "<chipNr>" + o.ChipRegistrationNumber + "</chipNr>");
File.WriteAllLines(fileName, lines);
foreach(var line in lines)
Console.WriteLine(line);
}
catch(IOException)
{
MessageBox.Show("ERROR THROWN");
}
Essayez d'utiliser ceci - il suffit de remplacer le tableau:
try
{
using (Stream fs = new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "/textme.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
using (StreamWriter sw = new StreamWriter(fs))
{
int[] test = new int[] { 0, 12, 23, 46 };
sw.Write("sadadasdsadsadsadas");
for (int i = 0; i < test.Length; i++)
{
sw.WriteLine("<chipNr>" + test[i] + "<chipNr>");
Console.WriteLine("<chipNr>" + test[i] + "<chipNr>");
}
sw.Close();
}
fs.Close();
}
}
catch (IOException)
{
MessageBox.Show("ERROR THROWN");
}
Utilisez toujours (aussi Vous auriez pu fermer l'écrivain au lieu de filtream qui aurait dû travailler) p> Le problème est aussi loin que possible ... p> Vous pouvez éviter l'un de ce que via en utilisant code> (comme mentionné déjà) et que vous ne rencontrerez pas de problèmes (ou devez y penser) ... filtream.close code> est en réalité flux.close code> - et que les appels disposent code> mais ce n'est pas virtuel, alors un nettoyage général. p> filestream.dispose code> appelé implicitement lorsque vous utilisez à l'aide de code> - est spécifique affleurant code> Fermer < / Code> / Dispose - de même que le nettoyage spécifique approprié. p> à l'aide de code> comme c'est généralement le motif recommandé (et je n'ai franchement jamais reçu de cela) p> p>
Tout d'abord, les blocs Essayer / enfin ne sont pas nécessaires, vous pouvez utiliser un bloc code> à la place.
Vous devrez peut-être rincer le streamwriter:
fw.flush () code>Streamwriter dispose d'un constructeur qui prend une chaîne, le chemin du fichier et un bool, défini sur true pour ajouter. Cela vous aurait aidé à tomber dans la fosse du succès.
Vous devez affleurer et fermer le flux pour vous assurer que toutes les données sont écrites. Regardez ici: msdn.microsoft.com/en-us / Bibliothèque / ...