Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hallo,

ich möchte meinen stringinhalt in eine Datei schreiben.

ist die datei nicht da muss ich erzeugen, sonst überschreiben.

ich hab aber leider keine Ahnung wie ich des anstelle.

Ciao

Antibiotik

aus msdn

<code>

using System;

using System.IO;

using System.Collections;

using System.Runtime.Serialization;

using System.Runtime.Serialization.Formatters.Binary;

class SerializeTest{

public static void Main(String[] args) {

Console.WriteLine ("Objektdiagramm erstellen");

ArrayList l = new ArrayList();

for (int x=0; x< 10; x++) {

Console.WriteLine (x);

l.Add (x);

} // end for

Console.Write ("Objektdiagramm wird auf Datentrger serialisiert.");

Stream s = File.Open("foo.bin", FileMode.Create, FileAccess.ReadWrite);

BinaryFormatter b = new BinaryFormatter();

b.Serialize(s, l);

s.Close();

Console.WriteLine ("Abgeschlossen.");

Console.Write ("Objektdiagramm wird auf Datentrger deserialisiert.");

Stream r = File.Open("foo.bin", FileMode.Open, FileAccess.Read);

BinaryFormatter c = new BinaryFormatter();

ArrayList p = (ArrayList) c.Deserialize®;

Console.WriteLine ("Abgeschlossen.");

foreach (int i in p) {

Console.WriteLine (i);

}

r.Close();

Console.WriteLine ("\r\nDrcken Sie zum Beenden die EINGABETASTE.");

Console.Read();

} // end main

} // end class

</code>

wenn die datei vorher weg muss, gibt es noch File.Delete("c:\*.*");

bigredeyes

Ich glaub so gehts einfacher :)


using System.IO;


private void BeliebigeMethode()

{

  try

  {

    using (StreamWriter writer = File.CreateText(@"C:\Temp\Testdatei.txt"))

    {

       //Hier den Dateiinhalt schreiben

       writer.WriteLine("Das ist ein Testtext");

    }

  }

  catch

  {

    //Hier definieren, wie sich im Fehlerfall verhalten werden soll.

  }

}

Das erstellt eine Datei im Verzeichnis "C:\Temp" und legt dort eine Datei "Testdatei.txt" an. Falls eine solche Datei vorhanden ist, wird diese überschrieben. Dabei kann es natürlich zu einem Fehler kommen (dann wenn z.B. nicht auf die Datei zugegriffen werden kann, weil die noch jemand auf hat).

hallo zusammen,

danke für die antworten.

habs hinbekommen.

Ciao

Antibiotik

  • 5 Jahre später...

Ich hätte da mal ne Anschlussfrage..

Ich habe eine for Schleife, die bei jedem Durchlaufen einen Wert zurückgibt.

Diese Werte möchte ich in einer .txt Datei speichern.

Mein Problem: Es wird immer nur der Wert geschrieben der zuletzt ausgegeben wird.

Meine Frage: Wie kann man alle Werte (zb jeden auf einer neuen Zeile) die zurückgegeben werden speichern?

thx

h3ll5ur7er

Du möchtest also eine bestehende Datei erweitern statt sie durch eine neu zu ersetzten, richtig?

In dem Fall kannst du das Beispiel von oben ebenfalls verwenden. Allerdings verwendest du dann statt


File.CreateText(...

eben

File.AppendText(...

MfG Martin H.

Wäre es nicht schöner/eleganter wenn man nicht jedes mal in die Datei schreibt, sondern erst alles zu einem String zusammenfügt und dann am Ende diesen String schreibt???


private void writeToFile(string[] text)

{

   string toWrite = "";

   foreach( string val in text)

      toWrite += val;   // evtl noch + "\n"


   using(StreamWriter writer = new StreamWriter(path, true))

   {

       writer.Write(toWrite);

       writer.Flush();

       writer.Close();

   }

}

Ok :)

Was ich schon immer mal wissen wollte (Hoffe ich kann das hier mal kurz fragen und meine Frage ist nicht allzu dumm....)

Welche Vorteile bietet denn ein StringBuilder gegenüber der einfach aneinanderkettung von Strings???

Wäre es nicht schöner/eleganter wenn man nicht jedes mal in die Datei schreibt, sondern erst alles zu einem String zusammenfügt und dann am Ende diesen String schreibt???

Elegant in welchem Sinne?


foreach (var item in ObjectToSerialize)
{
sw.Write("{0},", item);
}
sw.Close();[/PHP]

In dem Falle sehe ich auf einen Blick, dass über [i]ObjectToSerialize[/i] iteriert wird und entsprechend [i]item[/i]weise in den Stream geschoben wird.

[PHP]
using(StreamWriter writer = new StreamWriter(path, true))
{
writer.Write(toWrite);
writer.Flush();
writer.Close();
}

Das sehe ich hier nicht.

Mal ganz davon abgesehen, dass ich bei längerem Code nachschlagen müsste, was hier eigentlich geschrieben wird. toWrite ist eher Nichtssagend.

Am Rande:

string toWrite = ""; // besser = String.Empty

Technisch gesehen wird der Code wohl so ausgeführt werden, wie Du ihn schreibst, i.e. es wird erst ein Puffer beschrieben, der anschließend auf Platte weggeschrieben wird.

Zum Thema StringBuilder:

Concatenating Strings Efficiently

Bearbeitet von lilith2k3

  • 1 Monat später...

Ich hab hierzu auch mal ne Anschlussfrage:

und zwar möchte ich das mein Programm mir immer eine neue Textdatei erstellt(was es auch tut) und im Namen der Textdatei soll das aktuelle Datum und Uhrzeit stehen. Das Datum ist kein Problem aber bei der Uhrzeit bricht er immer ab.

Kann mir jemand helfen?

Danke und Gruß

Kann ich die irgendwie durch Striche oder so ersetzen?

Bzw hab ich ne Möglichkeit trotzdem die Uhrzeit mit rein zu bringen in den Namen?

Danke und Gruß

Hat geklappt danke:-)

Habe auch noch eine Frage

Mit dem StreamReader kann man ja sagen in wlecher Codirung die Datei vorliegt. Kann man dem StreamWriter auch sagen in welcher Codierung er die Datei nachher abspeichern soll? Ich bekomm nämlich leider nur müll aus der Datei.

Am Rande:

string toWrite = ""; // besser = String.Empty

Kannst Du, oder jemand Anders, mir sagen, was hier genau der Unterschied ist bzw. warum man lieber String.Empty benutzen sollte?

MfG

AnDi_P

Kannst Du, oder jemand Anders, mir sagen, was hier genau der Unterschied ist bzw. warum man lieber String.Empty benutzen sollte?

Ich finde String.Empty trägt zur Lesbarkeit bei - der Autor macht deutlich, dass er einen Leerstring intendiert hat; und nicht, dass der String aus irgendwelchen Gründen leer ist.

Alles klar, danke!

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.