RandomAccessFile

Status
Nicht offen für weitere Antworten.
B

BonanZa7

Gast
Über RandomAccessFile werden immer neue Wörter in eine Datei geschrieben. Es gibt immer ein Wort pro Zeile. Wie kann ich ein Zufälliges Wort heraussuchen aus der Datei?
mfg
 
B

bygones

Gast
Warum per RandomAccessFile, wenn pro Zeile ein Wort ?

ZeilenWeise ist z.b. BufferedReader zum lesen bzw. PrintWriter zum schreiben besser. Zufallszahl aussuchen, soviele zeilen einlesen und das letzte wort isses.

edit: achja, kannst auch beim RAF readLine nutzen
 

messi

Bekanntes Mitglied
Wie zufällig muss das Wort denn sein?

Du könntest z. B. eine Zufallszahl [0; Dateilänge[ wählen und an der Stelle in der Datei das Wort ablesen. Dazu musst du ggf. den Wortanfang und das Wortende erst noch suchen. Einfach ab der Stelle zurück- bzw. vorgehen. Beachte aber, dass längere Wörter eine größere Wahrscheinlichkeit haben. Das geht auch nur mit RandomAccess(-File).

Eine andere Möglichkeit wäre das zeilenweise Einlesen. Dabei wird jede neue Zeile bzw. neues Wort gewichtet und je nach Zufallzahl ggf eingelesen. Sowas kann man machen, wenn man die Anzahl der Zeilen nicht kennt, wenn die Wortlänge stark variiert und wenn man nur Streams benutzen darf.
 
G

Guest

Gast
Ja ich schreibe die Wörter zeilenweise in die Datei.
Wie genau mache ich das jetzt mit readLine() dass ich ein zufälliges bekomme?
 

messi

Bekanntes Mitglied
Oder lies einfach den ganzen Scheiß in eine java.util.List oder ein String[] und such dir dann eins zufällig aus, wenn die Anzahl der Wörter gering ist.
 
B

bygones

Gast
Anonymous hat gesagt.:
Ja ich schreibe die Wörter zeilenweise in die Datei.
Wie genau mache ich das jetzt mit readLine() dass ich ein zufälliges bekomme?
werden während du das wort lesen willst neue wörter eingeschrieben oder ist das statisch ?

neu geschrieben:
per Random (dabei muss die anzahl der geschriebenen wörter bekannt sein, um die obergrenze von random zu haben) eine zahl ermitteln, in einer Schleife die Datei zeilenweise lesen, bis du die zahl- Anzahl der Zeilen hast....

statisch:
Datei einmal in eine List / array schreiben... einen zufälliges Wort daraus ermitteln
 
G

Guest

Gast
Wie wäre es mit RandomAccessFile#seek((long)(file.length()*doubleRandom)),
dann den Zeilenanfang ermitteln und die Zeile ausgeben?
So würde ich es machen, statt alles in ein Array einzulesen.
 

Illuvatar

Top Contributor
Gast: Wenn die Wörter unterschiedlich lang sind, haben längere Wörter bei deiner Variante eben eine entsprechend höhere Wahrscheinlichkeit, was ja wahrscheinlich nicht gewünscht ist.
 
G

Guest

Gast
Wenn ich die Wörter aus der Datei in ein Array bzw Liste schreibe. Woher weiss ich dann wie groß bzw. wieviele Elemente das Array haben muss? Brauch ich ja beim erstellen des Arrays oder der Liste....oder nicht?

Also wenn ich jetzt z.B. String[] a = new String[34]; mache die Datei mit den Wörtern aber mehr als 34 hat...wie mache ich das jetzt?
 

Bastian

Bekanntes Mitglied
messi hat gesagt.:

jetzt hab ich auch mal ne frage:
strg.split(" ",int); ist ein array. int muss bekannt sein. gibt es dafür auch eine entsprechende methode in der das int nicht bekannt sein muss?? (allso quasi eine split-methode die ihr daten nicht in einem array sonderm in einer arraylist speichert, oder so)
 

Illuvatar

Top Contributor
Ist strg ein String?
RTFM?

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#split(java.lang.String)
 
G

Guest

Gast
Illuvatar hat gesagt.:
Gast: Wenn die Wörter unterschiedlich lang sind, haben längere Wörter bei deiner Variante eben eine entsprechend höhere Wahrscheinlichkeit, was ja wahrscheinlich nicht gewünscht ist.
Stimmt. ;)
Wahrscheinlich geht es hier nur um "paar" Einträge, die man locker in den Speicher kriegt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
N Randomaccessfile Java Basics - Anfänger-Themen 2
G Wie gebe ich einen Dateipfad in RandomAccessFile an? Java Basics - Anfänger-Themen 2
S TextArea, RandomAccessFile, Apend und andere Tricks... Java Basics - Anfänger-Themen 7
R RandomAccessFile verständnis Problem Java Basics - Anfänger-Themen 10
D RandomAccessFile Java Basics - Anfänger-Themen 2
P RandomAccessFile writeInt() und writeChar() Java Basics - Anfänger-Themen 3
L RandomAccessFile liest nicht alle Zeichen Java Basics - Anfänger-Themen 3
D Erste Schritte RandomAccessFile "Leerzeichen" löschen Java Basics - Anfänger-Themen 6
F Kann RandomAccessFile Zip Datei lesen? Java Basics - Anfänger-Themen 14
B Klassen RandomAccessFile Java Basics - Anfänger-Themen 7
B Collections RandomAccessfile & Linkedlist Java Basics - Anfänger-Themen 4
M Frage zur Klasse RandomAccessFile Java Basics - Anfänger-Themen 8
cosmic Frage zu der RandomAccessFile Klasse Java Basics - Anfänger-Themen 6
K RandomAccessFile Java Basics - Anfänger-Themen 4
T RandomAccessFile - Wie schreibe ich etwas in eine txt Datei? Java Basics - Anfänger-Themen 5
C RandomAccessFile vs. Streams Java Basics - Anfänger-Themen 5
D text dateien mit RandomAccessFile manipulieren Java Basics - Anfänger-Themen 6
T RandomAccessFile und der Dateipfad Java Basics - Anfänger-Themen 2
J RandomAccessFile löschen Java Basics - Anfänger-Themen 2
M RandomAccessFile Java Basics - Anfänger-Themen 3
G RandomAccessFile, FileChannel, MappedByteBuffer Java Basics - Anfänger-Themen 12
P Datei mit RandomAccessFile einlesen Java Basics - Anfänger-Themen 14
M RandomAccessFile schreibt Sonderzeichen vor String Java Basics - Anfänger-Themen 2
R RandomAccessFile mit anderen Streams verbinden Java Basics - Anfänger-Themen 5
J File, RandomAccessFile File wird größer Java Basics - Anfänger-Themen 8
J RandomAccessFile schreibt falsch Java Basics - Anfänger-Themen 2
G RandomAccessFile Java Basics - Anfänger-Themen 20
R RandomAccessFile Java Basics - Anfänger-Themen 4
R RandomAccessFile und ObjectoutputStream Java Basics - Anfänger-Themen 2
T RandomAccessFile erzeugt seltsame Zeichen Java Basics - Anfänger-Themen 2
P RandomAccessFile Java Basics - Anfänger-Themen 2
L RandomAccessFile und readChar readByte Java Basics - Anfänger-Themen 2
D konvertierungsprobleme bei RandomAccessFile Java Basics - Anfänger-Themen 4
L RandomAccessFile - Prob Java Basics - Anfänger-Themen 4
N RandomAccessFile(File, String) erstellt datei?! Java Basics - Anfänger-Themen 6
M RandomAccessFile liest nur jeden zweiten Wert aus! Java Basics - Anfänger-Themen 8
G RandomAccessFile Java Basics - Anfänger-Themen 2
O RandomAccessFile komisch zeichen Java Basics - Anfänger-Themen 7
A RandomAccessFile Java Basics - Anfänger-Themen 7
B String in ein RandomAccessFile einfügen (bestimmte Position) Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben