fortlaufende Nummer

muha

Mitglied
Hallo zusammen,

ich schreibe grad ein Programm, der mir an einer Stelle die Nummer um eins erhöht,
wenn ich speichern tätige, das klappt auch soweit. Nur ich will, dass der Wert gespeichert wird
und wenn ich das Programm erneut öffne da weitermacht, wo ich aufgehört habe.
Also nicht von 0 sondern mit 124 Beispielsweise :)

Danke schonmal im Voraus für die Tipps,

VG

muha
 

mihe7

Top Contributor
Ich verstehe das Problem nicht ganz. Du schreibst Dir eine Methode, die Dir den nächsten Wert liefert. Dabei wird der Wert aus einer Datei/DB ausgelesen, erhöht und zurückgeschrieben. Den erhöhten Wert gibt die Methode zurück und das wars.
 

muha

Mitglied
Ich verstehe das Problem nicht ganz. Du schreibst Dir eine Methode, die Dir den nächsten Wert liefert. Dabei wird der Wert aus einer Datei/DB ausgelesen, erhöht und zurückgeschrieben. Den erhöhten Wert gibt die Methode zurück und das wars.

ich weiß leider nicht wie ich das machen kann, wie muss ich das angehen.
 

flopalko

Bekanntes Mitglied
Ich verstehe das Problem nicht ganz. Du schreibst Dir eine Methode, die Dir den nächsten Wert liefert. Dabei wird der Wert aus einer Datei/DB ausgelesen, erhöht und zurückgeschrieben. Den erhöhten Wert gibt die Methode zurück und das wars.
Wo lest ihr das mit der DB heraus? Ich glaube tatsächlich, dass der TE eine lokale variable erhöht und die eben nirgends hinschreibt. Falls dem so ist: überleg dir irgendetwas um den Zustand zu speichern, am einfachsten wäre wohl eine .txt
 

mihe7

Top Contributor
ich weiß leider nicht wie ich das machen kann, wie muss ich das angehen.
Es gibt verschiedene Möglichkeiten, die vom jeweiligen Einsatzszenario und auch -zweck abhängig sind.

Zum Beispiel:
Java:
import java.io.RandomAccessFile;
import java.io.IOException;
import java.io.UncheckedIOException;

public class Sequence implements AutoCloseable {
    private final RandomAccessFile raf;

    public Sequence(String filename) {
        try {
            raf = new RandomAccessFile(filename, "rwd");
            if (raf.length() == 0) {
                raf.writeInt(0);
            }
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }

    public void close() {
        try {
            raf.close();
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }

    public int next() {
        try {
            raf.seek(0L);
            int value = raf.readInt() + 1;
            raf.seek(0L);
            raf.writeInt(value);
            return value;
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }
}

Verwendung:
Java:
public class Test {
    public static void main(String[] args) {
        try(Sequence seq = new Sequence("sequence.dat")) {
            for (int i = 0; i < 10; i++) {
                System.out.println(seq.next());
            }
        }
    }
}
 

muha

Mitglied
Es gibt verschiedene Möglichkeiten, die vom jeweiligen Einsatzszenario und auch -zweck abhängig sind.

Zum Beispiel:
Java:
import java.io.RandomAccessFile;
import java.io.IOException;
import java.io.UncheckedIOException;

public class Sequence implements AutoCloseable {
    private final RandomAccessFile raf;

    public Sequence(String filename) {
        try {
            raf = new RandomAccessFile(filename, "rwd");
            if (raf.length() == 0) {
                raf.writeInt(0);
            }
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }

    public void close() {
        try {
            raf.close();
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }

    public int next() {
        try {
            raf.seek(0L);
            int value = raf.readInt() + 1;
            raf.seek(0L);
            raf.writeInt(value);
            return value;
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }
}

Verwendung:
Java:
public class Test {
    public static void main(String[] args) {
        try(Sequence seq = new Sequence("sequence.dat")) {
            for (int i = 0; i < 10; i++) {
                System.out.println(seq.next());
            }
        }
    }
}
Vielen Dank habe es damit echt verstanden und hingekriegt :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
it_is_all For-Schleife - Dateinamen fortlaufende Nummer Java Basics - Anfänger-Themen 2
M Druck mit fortlaufende Nummer Java Basics - Anfänger-Themen 6
M Fortlaufende Nummer Java Basics - Anfänger-Themen 4
M ArrayList<TreeNode<T>> fortlaufende Nummerierung der Elemente Java Basics - Anfänger-Themen 5
R Fortlaufende Zahl Java Basics - Anfänger-Themen 3
M Fortlaufende Konsole Java Basics - Anfänger-Themen 3
J fortlaufende Objekte durch Variable auswählen; Datenbank Java Basics - Anfänger-Themen 4
G Fortlaufende Aktualisierung bei eigener Klasse Java Basics - Anfänger-Themen 2
sserio Prüfziffer einer ISBN Nummer herrausfinden. Java Basics - Anfänger-Themen 14
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
S Nummer splitten Java Basics - Anfänger-Themen 2
E ISBN Nummer mit boolean Java Basics - Anfänger-Themen 5
J Eindeutige Nummer (8 stellig) erzeugen Java Basics - Anfänger-Themen 9
G nach 9 - stelliger Nummer suchen Java Basics - Anfänger-Themen 7
W Methode um Nummer zu überprüfen. Java Basics - Anfänger-Themen 5
M Unbekannte Nummer bei Aufruf der toString Methode Java Basics - Anfänger-Themen 3
O String name mit fortlaufender Nummer Java Basics - Anfänger-Themen 14
J OOP Vergebene Objekt Nummer abgleichen falls einer entfernt wird ? Java Basics - Anfänger-Themen 5
M automatische laufende Nummer erzeugen Java Basics - Anfänger-Themen 10
J Gültigkeit einer ISBN Nummer prüfen! Java Basics - Anfänger-Themen 5
G Datenbank über Nummer, Daten bekommen Java Basics - Anfänger-Themen 4
A Dateinamen mit laufender Nummer erzeugen! Wie? Java Basics - Anfänger-Themen 9
S Objekte mit laufender Nummer erzeugen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben