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 / ...