FileOutputStream und zu große Zahlen!

Status
Nicht offen für weitere Antworten.

MasterZnake

Mitglied
Juten Tag, ich habe ein kleines Problem...
Ich versuche mich grade zum ersten mal an File Operations und bin auf ein Problem gestoßen.
Ich versuche per FileOutputStream ein paar Bytes in eine Datei zu schreiben aber da ich die zu schreibenden Werte aus
einer Eingabemaske erhalte muss ich sie in erst in Bytes umwandeln, da geht das Theater schon los aber selbst wenn ich direkt
Code:
FileOutputStream f = new FileOutputStream(new File("C://test//test"));
 f.write(257);
schreibe, krieg ich beim einlesen meine 257 nicht wieder :(
Jetzt hab ich keine Ahnung wie ich z.B. "123456" gespeichert bekomme, so dass sie von jedem anderen Programm auch
wieder als "123456" angezeigt wird
Wäre klasse wenn mir da jemand helfen könnte

---
und jo, ich hab tagelang im netz nach ner lösung gesucht -.-"
 

Murray

Top Contributor
Code:
f.write( "123456".getBytes());

Damit schreibst Du den String "123456" byte-weise in eine Datei.
 

Murray

Top Contributor
Wenn Du die einzelnen Bytes wieder in ein byte[] packst, kannst Du daraus wieder einen String machen:
Code:
  byte[] ba = new byte[256]; //--- oder was auch immer die maximale Länge ist
  int len = fis.read( ba);
  String str = new String( ba, len, 0);

Man sieht aber schon, dass es ziemlich mühsam wird, sich hier wirklich auf der Byte-Ebene zu bewegen. Wenn Du mehr als einen Wert in die Datei schreiben willst, dann musst Du entweder feste Feldlängen oder aber Trennzeichen verwenden.

Wesentlich komfortabler geht das, wenn Du zum Schreiben einen PrintWriter und zum Lesen einen BufferedReader verwendest.
 

Murray

Top Contributor
Wenn Du mit einen PrintWriter die Daten mit println, also zeilenweise ausgibst, dann kannst Du sie einfach mit BufferedReader#readLine einlesen, ohne Dich um Feldlängen oder Trennzeichen kümmern zu müssen.
 

MasterZnake

Mitglied
bei den trennzeichen tritt ein problem auf, da die datei sowohl
OD und 0A enthält macht java zeilensprünge
das mag ja eigentlich ganz brauchbar sein
(sogar in meinem fall wo es sich nicht um einen txt handelt) aber:
beim schreiben mit java und dem println() schreibt java 0D0A als Zeilensprung,
was die ursprüngliche Struktur des Dokuments zertstört (wie gesagt, es ist kein txt)
und der original Erzeuger dieses Dokuments kann es nichtmehr richtig lesen :(

Ich hab schon überlegt ob es gehen würde das charset zu ändern,
hab aber keine ahnung OB und WIE das geht...

Trotzdem vielen Dank für die Hilfe
 

Murray

Top Contributor
Wenn es sich nicht um eine Textdatei handelt, dann sind Reader und Writertatsächlich ungeignet; in disem Fall musst Du Dich mit den Bytes herumschlagen. Aber was soll denn in der (Binär-)Datei stehen, wenn Du 257 schreibst? Drei Bytes, die für die Zeichen '2', '5' und '7' stehen, oder aber eine Binärrepräsentatin der Zahl 257?
 

MasterZnake

Mitglied
das 2. schätz ich ???:L
Leider hab ich mit dateien und dateistrukturen noch nicht soviel erfahrung
aber der sinn dieses programmes soll es sein savegames zu verändern
und zb die exp zu ändern. da sind zahlen bis 127 leider ein bisserl wenig.
Allerdings ging mein Programm mit den kleinen zahlen (fast) fehlerfrei und
das enstprechende Spiel hat die gefakten Werte akzeptiert.....


Ein weiteres auftretendes Problem ist (weiss ich, da ich mir die Savegames
im HexEditor angesehen habe), dass die einzelnen hex werte einer zusammen
gehörigen zahl verdreht werden dh:

123456 (Basis 10) = 1E240 (Basis 16)
wird aber gespeichert als
40 | E2 | 01
.. nur so am rande..



Und bitte keine getrolle nur weil ich mich dazu bekenne einen savegameeditor
schreiben zu wollen :noe:
 

foobar

Top Contributor
Es gibt 2 Möglichkeiten ein Byte zu Speichern: BigEndian und LittleEndian d.h. zuerst wird das höherwertigste-Bit oder das niederwertigste Bit gespeichert.

Wenn du direkt Bytes manipulieren willst, kannst du direkt die print-Methode des Outputstreams verwenden. Dann kannst du direkt ein einzelnes Byte in die Datei schreiben. Eine Alternative wäre ein RandomAccessFile.
 

MasterZnake

Mitglied
das mit dem byteweise schreiben hatte ich ja so, ich verstehe nur nicht wie ich große zahlen auf diese art schreiben soll, deswegen ja überhaupt erst das problem ^^
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
noah1407 Fileoutputstream Java Basics - Anfänger-Themen 4
S Datei-Speicherort von FileOutputStream Java Basics - Anfänger-Themen 4
M Fileoutputstream: Linux Dateinamen mit Umlaute Java Basics - Anfänger-Themen 4
J FileOutputStream aktuelle Speicher Pfad ausgeben Java Basics - Anfänger-Themen 13
J FileOutputStream Java Basics - Anfänger-Themen 3
J FileOutputStream write Java Basics - Anfänger-Themen 19
A fileoutputstream ändern Java Basics - Anfänger-Themen 14
Corben Input/Output FileOutputStream - neue Zeile mit write(10) Java Basics - Anfänger-Themen 6
F FileOutputStream.write Java Basics - Anfänger-Themen 2
N FileOutputStream und existenz von Datei überprüfen Java Basics - Anfänger-Themen 2
O OOP FileOutputStream überschreibt ganzen inhalt der txt Java Basics - Anfänger-Themen 4
hdi Datentypen FileOutputStream#write(int) mit ints? Java Basics - Anfänger-Themen 5
J FileOutputStream richtige Pfadangabe? Java Basics - Anfänger-Themen 8
A FileOutputStream -> byte[] (ohne File) Java Basics - Anfänger-Themen 6
G FileOutputStream generieren Java Basics - Anfänger-Themen 2
C FileInputStream und FileOutputStream Java Basics - Anfänger-Themen 4
S Arbeitsfeld in gleich große Bereiche einteilen Java Basics - Anfänger-Themen 2
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
C Große Zahlen vergleichen Java Basics - Anfänger-Themen 19
S 4 große Textdateien zu einer Mergen Java Basics - Anfänger-Themen 5
K Große Datenliste Java Basics - Anfänger-Themen 2
E Große Datenmengen effizient in CSV File speichern Java Basics - Anfänger-Themen 4
1 Extrem große Variable Java Basics - Anfänger-Themen 1
S Best Practice MVC und große Datenmengen aus einer mySQL - Datenbank Java Basics - Anfänger-Themen 24
M Mergesort Aufgabe große Probleme Java Basics - Anfänger-Themen 9
P Schneller Quadratzahltest für beliebig große natürliche Zahlen Java Basics - Anfänger-Themen 2
T Scanner für große Textdatei Java Basics - Anfänger-Themen 11
N Input/Output Große Dateien schnell Speichern/auslesen Java Basics - Anfänger-Themen 16
B große jpeg verarbeiten Java Basics - Anfänger-Themen 8
K Große Gleitkommazahlen runden Java Basics - Anfänger-Themen 8
X Compiler-Fehler javac - 08 eine zu große int? Java Basics - Anfänger-Themen 11
turmaline String teilen in gleich große strings Java Basics - Anfänger-Themen 15
F Große Potenzen berechnen Java Basics - Anfänger-Themen 6
J Große .txt einlesen - Idee? Java Basics - Anfänger-Themen 16
E Datentypen Große Zahl erzeugen Java Basics - Anfänger-Themen 5
P Kleines Projekt -> Große Überlegungen Java Basics - Anfänger-Themen 2
F Große Daten und große Array Java Basics - Anfänger-Themen 21
O Performant große Dateien durchsuchen Java Basics - Anfänger-Themen 8
J Große animierte Gif preloaden und solange mit einer nicht animierten ersetzen Java Basics - Anfänger-Themen 5
Povlsen84 Datentypen Große, sortierte, schnelle Datenstruktur Java Basics - Anfänger-Themen 9
H Große Projekte mit Java - Ausführbare Datei Java Basics - Anfänger-Themen 2
K Eclipse EMF und das große HÄ? Java Basics - Anfänger-Themen 5
T .split(";") nicht gleich große arrays werden erzeu Java Basics - Anfänger-Themen 2
G String aus Zahlen multiplizieren -> unendlich große ! Java Basics - Anfänger-Themen 13
M Spielt der Debugger bei java eine große Rolle Java Basics - Anfänger-Themen 3
C große Matrizen, Performance, (Pointer?) Java Basics - Anfänger-Themen 6
L JTextArea große setzen Java Basics - Anfänger-Themen 5
S große probleme mit java Java Basics - Anfänger-Themen 6
R große Datenmenge in Datei schreiben Java Basics - Anfänger-Themen 8
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
B Probleme große Strings zu schreiben Java Basics - Anfänger-Themen 2
A große errechnete datenmengen sofort in datei schreiben? Java Basics - Anfänger-Themen 6
S Große Text dateien einbinden Java Basics - Anfänger-Themen 3
R große Zahlen Java Basics - Anfänger-Themen 4
R Große Zahlen Java Basics - Anfänger-Themen 3
T Große Zahlen aufgesplittet in verketteter Liste speichern Java Basics - Anfänger-Themen 4
N Große Probleme mit StingBuffer und Array Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
M negative Zahlen bei Intervallen Java Basics - Anfänger-Themen 10
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
K Java gleicher Wert von Zahlen? Java Basics - Anfänger-Themen 5
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
J Operatoren Zahlen addieren Java Basics - Anfänger-Themen 13
B Threads Counter mit ungeraden Zahlen Java Basics - Anfänger-Themen 32
JavaBeginner22 Java 2 Zufalls zahlen generieren. Java Basics - Anfänger-Themen 11
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
M Stream mit den ersten n natürlichen Zahlen Java Basics - Anfänger-Themen 4
D Größtes Palindrom Produkt aus zwei dreistelligen Zahlen Java Basics - Anfänger-Themen 60
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
sserio Befreundete Zahlen Java Basics - Anfänger-Themen 7
AhmadSlack Verzweigungen zahlen multiplizieren Java Basics - Anfänger-Themen 4
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
U Lotto-Zahlen App Java Basics - Anfänger-Themen 34
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
H Zahlen kürzen Java Basics - Anfänger-Themen 2
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
jhCDtGVjcZGcfzug Fibonacci Zahlen rekursiv und iterativ Java Basics - Anfänger-Themen 21
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben