German Probleme mi Textwriter

arautio

Member
Licensed User
Longtime User
Hallo,
Wenn ich meine App neu installiere und beim ersten Startvorgang eine Datei in DirInternal schreibe funktioniert es, will ich während des laufen des Programm auch die Datei zugreifen bekomme ich ein nullPointerException zurück.


TextWriter1.Initialize(File.OpenOutput(File.DirInternal, "sys.txt", False))
TextWriter1.WriteLine("S")
TextWriter1.WriteLine("s")
TextWriter1.WriteLine("J")
TextWriter1.WriteLine("k")
TextWriter1.WriteLine("K")
TextWriter1.Close

Wer kann helfen
 

DonManfred

Expert
Licensed User
Longtime User
If you want to use this code more than once you should remember that you dont want to append data cause of the parameter false.

I suggest to first delete the file and then create it again with your code in case that you dont want to append the data.

If you want to append the string(s) to an exiting file then you should set the last parameter of OpenOutput to true.
 
Last edited:

arautio

Member
Licensed User
Longtime User
Hey du darfst deutsch schreiben
das mit dem false auf true setzen habe ich schon gemacht, lt. beschreibung soll es ja so sein das du erstellst oder anfügst.
es geht auch nicht wenn ich beim 2. schreiben sys2.text mache, auch hier bringt er mir eine fehlermeldung
 

DonManfred

Expert
Licensed User
Longtime User
Oh sorry wegen englisch ;-)

OpenOutput (Dir AsString, FileName AsString, Append AsBoolean) AsOutputStreamOpens (or creates) the specified file which is located in the Dir folder for writing.
If Append is true then the new data will be written at the end of the existing file.
Das sagt nichts darüber aus ob die Datei neu angelegt wird wenn sie schon existiert.
Deswegen mein Vorschlag bzgl. vorher löschen.
 

Anne

Member
Licensed User
Longtime User
Hey, probier mal das!
B4X:
Dim TextWrinter1      As TextWriter
    Dim Linie             As String
    Dim WriteFile         As String      : WriteFile = "sys.txt"
    TextWriter1.Initialize(File.OpenOutput(File.DirInternal, WriteFile, False))
    TextWriter1.WriteLine("S")
    TextWriter1.WriteLine("s")
    TextWriter1.WriteLine("J")
    TextWriter1.WriteLine("k")
    TextWriter1.WriteLine("K")
    TextWriter1.close

Du weisst aber wohl, was du da machst? Du schreibst 5 Zeilen mit je einem Buchstaben, nämlich S,s, J, k, K
Beispiel für die 1. Zeile:

B4X:
Linie = "S"
    textWriter1.WriteLine(Linie)
Ich fülle normalerweise eine Variable mit dem Namen Linie mit Inhalt und schreibe die Zeile dann.

Ach ja, Wenn du die Datei ein zweites Mal schreiben willst, dann ist sie natürlich vorhanden und das geht dann nicht. Wisst du sie lesen, dann heisst der Befehl Readline und du musst die Datei mit

TextReader1.Initialize(File.OpenInput(File.DirInternal, "sys.txt")

Löschen kannst du die Datei mit Delete.

Viel Glück. Gruss Anne
 
Last edited:
Cookies are required to use this site. You must accept them to continue using the site. Learn more…