RandomAccessFile schreibt falsch

Status
Nicht offen für weitere Antworten.
Hi,

ich hab ein kleines Programm udn damit ein kleines Problem.

Und zwar ich möchte, dass ein RandomAccessFile Objekt an einer bestimmten Stelle eine Zahl (die allerdings als String gespeichert ist) in eine Datei schreibt. Das Programm findet auch die richtige stelle und schreibt die Zahl auch - allerdings schreibt es davor immer noch ein Leerzeichen. Dies bewrikt aber, dass zuviel überschrieben wird und das darf nicht sein.

Also hier erstmal der Code
Code:
 public void speichern(){
   try{
    RandomAccessFile file = new RandomAccessFile(presentLanguage + ".vok", "rw");
    //FilePointer auf Voklist setzen
    while(true){
      if(file.readLine().equals("[voklist]"))
        break;
    }

    int nummer = 0;
    while(true){
      String zeile = file.readLine();

      if(zeile.equals("[/voklist]"))
        break;

      int pos1 = -1;
      for(int i = 0; i<2; i++){
       pos1 = zeile.indexOf(";", pos1+1);
      }

      int length1 = zeile.length();
      zeile = zeile.substring(0,pos1+1);
      int length2 = zeile.length();

      if(zeile.equals(vokabeln[nummer][0]+";"+vokabeln[nummer][1]+";")){
       file.seek(file.getFilePointer()-(length1-length2+2));
       //Problem: Schreibt Zeichen plus Leerzeichen; ";" wird dabei gelöscht
       file.writeChar(vokabeln[nummer][2].charAt(0));
       nummer++;
      }
    }
    file.close();
   }catch(IOException ie){

   }

  }

Der Text der dann also herauskommen sollte müsste so aussehen: text;text;1;text;...
Es kommt aber text;text; 1ext;... raus.

Meine Idee woran das liegen könnte ist die, dass die Methode writeChar() laut API ja zwei Bytes schreibt, ein ASCII zeichen aber nur aus einem Byte besteht. Wenn das die Ursache ist, stellt sich aber noch die Frage, wie man das Problem lösen kann.

Gibt es also irgendeine Möglichkeit die writeChar()-Methode oder eine gleichwertige zu veranlassen nur ein Byte zu schreiben? Oder einen Zeichensatz zu verwenden, bei dem jedes Zeichen aus 2 Bytes besteht? Oder kann man den 1 Zeichen-String bzw. das Char-Objekt irgendwie in ein einzelnes Byte verwandeln, so dass die Information genauso erhalten bleibt?

Ich wäre super dankbar für hilfreiche antworten.

Jakob
 

kleiner_held

Top Contributor
Wenn der char den du schreiben willst ein reiner ASCII char ist, kannst du einfach
Code:
file.writeByte((byte) vokabeln[nummer][2].charAt(0));
verwenden. Ansonsten musst du dich mit der Klasse java.nio.charset.Charset auseinandersetzen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M RandomAccessFile schreibt Sonderzeichen vor String Java Basics - Anfänger-Themen 2
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
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
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
B RandomAccessFile Java Basics - Anfänger-Themen 12
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
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
G Weiß jemand wie man dieses Programm schreibt? Java Basics - Anfänger-Themen 84
N wie schreibt man die neue for schleife? Java Basics - Anfänger-Themen 3
X Wann schreibt man diese Syntax zeichen { } Java Basics - Anfänger-Themen 8
C PrintWriter schreibt keine in Strings enthaltenen Zeilenumbrüche Java Basics - Anfänger-Themen 9
D FileWriter schreibt nicht in Datei Java Basics - Anfänger-Themen 14
D Input/Output Writer schreibt nicht in Subprozess Java Basics - Anfänger-Themen 3
B Erste Schritte Java IDE schreibt "(String[] args)" Java Basics - Anfänger-Themen 5
M BufferedWriter schreibt nur "?" oO Java Basics - Anfänger-Themen 6
K BufferedWriter schreibt die letzten paar Zeilen nicht Java Basics - Anfänger-Themen 5
S BufferedReader liest was anderes als BufferedWriter schreibt Java Basics - Anfänger-Themen 5
K println schreibt nichts auf das Display Java Basics - Anfänger-Themen 3
S Filewriter schreibt einfach nicht Java Basics - Anfänger-Themen 6
B Wie schreibt ihr eure Programme? Klassenweise oder linear? Java Basics - Anfänger-Themen 10
I Review von euch erwünscht, double Rechnung falsch Java Basics - Anfänger-Themen 34
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
M Dialogbox sofort neustarten, falls aktuelle Eingabe falsch Java Basics - Anfänger-Themen 11
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
O Warum ist meine Antwort falsch? Java Basics - Anfänger-Themen 3
O Warum ist die Auswahl falsch? Java Basics - Anfänger-Themen 4
J Erste Schritte Was mache ich in meinem Code falsch. Java Basics - Anfänger-Themen 3
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
R FXMLLoader Pfad falsch`? Java Basics - Anfänger-Themen 4
S Berechnung der sleep time ist falsch Java Basics - Anfänger-Themen 46
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
J String wird in GUI falsch ausgegeben Java Basics - Anfänger-Themen 10
A Figur erkennen, aber Abweichung falsch Java Basics - Anfänger-Themen 2
J Was mache ich falsch in meiner Java Anwendung? Java Basics - Anfänger-Themen 11
N Javac -version der Befehl ist entweder falsch geschrieben oder...... Java Basics - Anfänger-Themen 8
Z Klassen Error: ';' expected - was mache ich falsch? Java Basics - Anfänger-Themen 4
A Ich habe das Gefühl etwas grundlegendes falsch zu machen Java Basics - Anfänger-Themen 6
L Ist an diesem Befehl irgendwas falsch? Java Basics - Anfänger-Themen 2
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
M Was ist daran falsch Java Basics - Anfänger-Themen 2
A Arrays addieren- Was mache ich falsch?? Java Basics - Anfänger-Themen 2
S Code richtig / besser machbar? (Nicht sicher, ob Code selbst falsch ist) Java Basics - Anfänger-Themen 4
L AES - Irgendwas falsch? Java Basics - Anfänger-Themen 0
H Koordinaten gehen falsch ! Java Basics - Anfänger-Themen 13
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
B Wieso wird hier so viel als falsch angezeigt? Java Basics - Anfänger-Themen 2
JavaNewbie2.0 Was ist falsch? Java Basics - Anfänger-Themen 2
JavaNewbie2.0 Was ist falsch? Java Basics - Anfänger-Themen 23
D Prozente werden falsch berechnet Java Basics - Anfänger-Themen 8
F for Schleife zählt falsch Java Basics - Anfänger-Themen 6
S Variable wird falsch gesetzt Java Basics - Anfänger-Themen 5
J ArrayList wird in JTable falsch angezeigt Java Basics - Anfänger-Themen 0
D Aktuelles Datum wird falsch ausgegeben Java Basics - Anfänger-Themen 2
B Drucken: Default Paper von Drucker? Mein Drucker druckt falsch Java Basics - Anfänger-Themen 3
D Matritzenmultiplikation berechnet Werte falsch Java Basics - Anfänger-Themen 9
J ireport Designer / CSV / Sonderzeichen was läuft falsch Java Basics - Anfänger-Themen 7
W Was ist bei folgendem Code falsch? Java Basics - Anfänger-Themen 5
C Array wird falsch befüllt? Java Basics - Anfänger-Themen 7
L Methoden Histogramm, Methode berechnet falsch. Java Basics - Anfänger-Themen 7
Silvascus Was mache ich falsch? Java Basics - Anfänger-Themen 15
L Variable an andere Klasse weitergeben - Was mache ich falsch? Java Basics - Anfänger-Themen 2
C Variablen if Anweisung falsch gesetzt Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben