Daniel: writeBytes und Zeilenumbruch!?

Hallo zusammen

Ich schreibe eine einfache Applikation für eine Büchersammlung mithilfe eines Textfiles. Dabei werden einfach beim Start der Applikation die Werte eines Textfiles in ein Array eingelesen und in einer Form ausgegeben.

Ich verwende das Objekt "RandomAccessFile" mit der Methode writeBytes() um dem Textfile einen neuen Datensatz hinzuzufügen. Leider gelingt es mir nicht am Ende eines Wertes, einen Zeilenumbruch hinzuzufügen. Wenn ich File.writeBytes("Test\n"); schreibe, so erscheint im Textfile einfach folgendes: Test

Das Textfile sollte so aussehen:

Titel1
Autor1
Verlag1

Titel2
Autor2
Verlag2

...

Wie muss ich es anstellen damit ich einen richtigen Zeilenumbruch erhalte?

Besten Dank für die Hilfe im Voraus...

Gruss Daniel

  1. Hallo,

    Ich verwende das Objekt "RandomAccessFile" mit der Methode writeBytes() um dem Textfile einen neuen Datensatz hinzuzufügen. Leider gelingt es mir nicht am Ende eines Wertes, einen Zeilenumbruch hinzuzufügen. Wenn ich File.writeBytes("Test\n"); schreibe, so erscheint im Textfile einfach folgendes: Test

    Wie muss ich es anstellen damit ich einen richtigen Zeilenumbruch erhalte?

    Byt ist ein numerisches Format. Was Du willst, ist ein Zeichen. Vergleiche:
    class Main {
     public static void main(String[] args) {
            byte b = 65;
            byte nl = 10;
            byte d = 66;
            System.out.println("byte: " + b + nl + d);
            System.out.println("char: " + (char)b + (char)nl + (char)d);
     }
    }

    Aber was hast Du gegen die anderen write-Methoden der Klasse java.io.RandomAccessFile?

    raf.writeChar('\n');
                raf.writeChars("abc\n");
                raf.writeUTF("abc\n");

    viele Grüße

    Axel

    1. Hallo,

      Ich verwende das Objekt "RandomAccessFile" mit der Methode writeBytes() um dem Textfile einen neuen Datensatz hinzuzufügen. Leider gelingt es mir nicht am Ende eines Wertes, einen Zeilenumbruch hinzuzufügen. Wenn ich File.writeBytes("Test\n"); schreibe, so erscheint im Textfile einfach folgendes: Test

      Sorry, ich hatte nicht richtig gelesen. Vergiss das vorherige Posting.

      File.writeBytes("Test\n");
      schreibt schon einen Zelenumbruch in die Datei. Einige Windows Text-Editoren erwarten aber als Zeilenwechsel nicht nur NewLine, sondern CarriageReturn+NewLine. Diese Texteditoren stellen dann Deine Datei nicht richtig dar.

      Lösung1: Öffne die Datei mit z.B. Wordpad.

      Lösung2: Schreibe: File.writeBytes("Test\r\n");

      viele Grüße

      Axel

      1. Vielen DANK!!!

        Ich dachte mir dass es ein Problem des Texteditors ist, da JAVA readLine() das File richtig liest...

        Gruss Daniel

        1. Vielen DANK!!!

          Ich dachte mir dass es ein Problem des Texteditors ist, da JAVA readLine() das File richtig liest...

          Hallo

          eigentlich ist es eines der vielen Probleme, die wir Microsoft zu verdanken haben. Die kamen auf die idiotische Idee, bei DOS einen Zeilenumbruch anders darzustellen als es üblich war.

          Dominik