file reversen...



  • also ich hab folgende problemstellung:
    ich muss ein programm schreiben, dass ein file einliest
    und alle zeilen umgekehrt in ein anderes schreibt...

    bsp.:

    fileA:

    zeile1
    zeile2
    zeile3

    soll fileB schreiben:

    zeile3
    zeile2
    zeile1

    zu beachten ist, das nichts zwischengespeichert werden darf...
    außer natürlich die gerade eingelesene zeile

    bitte kann mir wer helfen
    den ich hab keine ahnung

    mfg bravo



  • Ich würde die Datei mit nem RandomAccessFile zeilenweise von hinten lesen und dann halt wie man es will in die neue Datei schreiben.
    Hier mal nen Ansatz:

    BufferedWriter out = new BufferedWriter(new FileWriter("test2.txt"));
    RandomAccessFile in = new RandomAccessFile("test.txt", "r");
    boolean newLine = false;
    StringBuffer buf = new StringBuffer();
    for(long i = in.length() - 1; i > -1; i--){
        in.seek(i);
        char c = (char)in.read();
    
        if(c == '\n' || c == '\r'){
            newLine = true;
            continue;
        }
        else if(newLine){
            out.write(buf.toString());
            out.newLine();
            out.flush();
            newLine = false;
            buf = new StringBuffer();
        }
        buf.insert(0, c);
    }
    out.write(buf.toString());
    in.close();
    out.close();
    


  • vielen dank...so ein ähnliches konzept hatte ich auch

    nämlich:
    von hinten an jedes zeichen einzulesen bis ein newline kommt
    und diese kette dann imer in das andere file schreiben hatte
    ich auch schon

    nur hat es wieder mal an der umsetzungsfähigkeit gemangelt

    nochmals vielen dank
    mfg bravo


Anmelden zum Antworten