Umwandeln von Bytes in float Zahl (DataInputStream)

Status
Nicht offen für weitere Antworten.
B

bic-nobody

Gast
Hallo zusammen!

mein Problem ist folgendes. Ich lese eine Binärdatei mittels FileInputStream ein und erzeuge daraus ein DataInputStream und hatte eigentlich vor, bestimmte Bytes mit readFloat() in eine Floatzahl umzuwandeln.
Leider Interpretiert er die Bits anscheinend flasch, so dass ganz andere Zahlen rauskommen.
Ich habe gerade in einem Forum gelesen, das Java das erste Bit als Vorzeichen Betrachtet und andere Sprachen wie C es als unsigned Bitfolge lesen.
Hat es irgendwas damit zu tun, wenn ja, wie lässt sich das Problem lösen oder gibt es noch eine andere möglichkeit, die Bytes umzuwandeln?

Danke für eure Antworten
 

Bleiglanz

Gesperrter Benutzer
du kannst eine Binärdatei nicht in einen DataInputStream verwandeln, wenn diese nicht vorher mit einem DataOutputStream geschrieben wurde!

wenn doch, dann muss die Datei "richtig" aufgebaut sein
 
B

bic-nobody

Gast
Ok, hab weiter im Inet geschaut und die Lösung gefunden:

Das Problem liegt bei der little und big endian Order. Java benutzt Big Endian, meine File war aber in Little-Endian.
Lösung:
Einen ByteBuffer aus der java.nio nehmen, dort die Bytes einlesen, dann die Order vertauschen und schon bekommt man die richtige Float Zahl

Code:
byte[] b = new byte[4];
ByteBuffer bb = ByteBuffer.allocate(4); // aus der java.nio

dis.read(b,0,4); // lese aus DataInputStream

bb.put(b);
bb.order(ByteOrder.LITTLE_ENDIAN);
bb.flip();

float f = bb. getFloat();
 
G

Guest

Gast
Nur so zur Info... du kannst über Channel des FileInputStreams direkt in ByteBuffer lesen,
ohne den Umweg mit dem Byte-Array.
Code:
ByteBuffer buffer = ByteBuffer.allocate(4);
f.getChannel().read(buffer);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
A verschachtelte for-Schleife in einen Stream umwandeln? Allgemeine Java-Themen 4
N Gierigen Regex in nicht-gierigen umwandeln Allgemeine Java-Themen 4
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
N Regulären Ausdruck in normalen Java-Code umwandeln Allgemeine Java-Themen 12
K HTMLEditor HTML Text in Rich Text umwandeln Allgemeine Java-Themen 14
M Rechner dez in Hex umwandeln Allgemeine Java-Themen 5
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
V Datentypen Graphikrechner 2/Strings und Variablen in Doubles umwandeln Allgemeine Java-Themen 6
H Stream in ArrayList umwandeln Allgemeine Java-Themen 2
J Objekt in Bytestream umwandeln Allgemeine Java-Themen 12
B Long in einen Double umwandeln und im Label anzeigen Allgemeine Java-Themen 7
C String in Objektnamen umwandeln Allgemeine Java-Themen 3
E String in Zahl umwandeln, ohne Befehl Integer.parseInt Allgemeine Java-Themen 3
V Eingegeben String Splitten und in Integer umwandeln Allgemeine Java-Themen 2
RalleYTN Unsigned int in signed int umwandeln Allgemeine Java-Themen 8
G GUI-basiertes Java-Program in Command-line Version umwandeln Allgemeine Java-Themen 1
J .jar in .exe Umwandeln Allgemeine Java-Themen 18
JavaWolf165 JsonObject in HashMap umwandeln Allgemeine Java-Themen 16
J Umwandeln von URL zu File und danach kopieren geht nicht Allgemeine Java-Themen 1
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
P Liste zu Objekt umwandeln Allgemeine Java-Themen 4
T Geographische in UTM Koordinaten umwandeln Allgemeine Java-Themen 5
JG12111989 char-Array in int-Array umwandeln Allgemeine Java-Themen 27
D Library/Framework zum Umwandeln von Sound in Notenbilder Allgemeine Java-Themen 1
D AWT Tiff-Datei darstellen bzw in darstellbares Format umwandeln Allgemeine Java-Themen 2
K Applet in JApplet umwandeln Allgemeine Java-Themen 5
N Zahlensysteme umrechnen; Probleme beim Umwandeln Allgemeine Java-Themen 4
M Datum umwandeln. Allgemeine Java-Themen 1
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
P OpenCV mit Java - Bilder in Graustufenbilder umwandeln Allgemeine Java-Themen 2
B Transferable in String/Integer umwandeln Allgemeine Java-Themen 11
J Datentypen String in Float umwandeln und "umbauen"? Allgemeine Java-Themen 5
T Datei Ordner in Binär-Zahlenkette umwandeln Allgemeine Java-Themen 11
B Binaräres Format in Dezimalformat umwandeln u. dabei die Zwischenschritte ausgeben Allgemeine Java-Themen 3
J String-Typ in einen generischen Typ T umwandeln Allgemeine Java-Themen 6
B HTML Tags in Strings umwandeln Allgemeine Java-Themen 4
C Java-Dateien in einheitlichen Zeichensatz umwandeln Allgemeine Java-Themen 10
K Datum+Uhrzeit in Millisekunden (long) umwandeln Allgemeine Java-Themen 7
S Erste Schritte if-Anweisung in for- oder while-schleife umwandeln Allgemeine Java-Themen 3
Q Posgresql String Timestamp Umwandeln Allgemeine Java-Themen 2
H2SO3- String 1.000,00 in double umwandeln Allgemeine Java-Themen 12
J String in int umwandeln Allgemeine Java-Themen 8
S Array in String umwandeln Allgemeine Java-Themen 6
cedi int Zahl in ein ASCII zeichen umwandeln und dieses in ein externes Textfenster schreiben Allgemeine Java-Themen 6
X Vector in Intervall-Menge umwandeln Allgemeine Java-Themen 4
S String mit GSON umwandeln Allgemeine Java-Themen 2
P Auslesen serieller Schnittstelle - umwandeln von byteArray Allgemeine Java-Themen 3
D Tabelle umwandeln Allgemeine Java-Themen 12
M String in Html Text umwandeln Allgemeine Java-Themen 2
L String in int umwandeln Allgemeine Java-Themen 5
H String in binary umwandeln? Allgemeine Java-Themen 6
S String[] in Integer umwandeln Allgemeine Java-Themen 16
Joy String in Date umwandeln Allgemeine Java-Themen 2
H .class in .java umwandeln Allgemeine Java-Themen 3
0 Datum in Java Date umwandeln Allgemeine Java-Themen 4
M String in Befehl umwandeln Allgemeine Java-Themen 10
T umwandeln BufferedImage to File Allgemeine Java-Themen 7
H2SO3- großen double in string mit e umwandeln Allgemeine Java-Themen 4
DerEisteeTrinker PDF mit seiner Formatierung in HTML umwandeln Allgemeine Java-Themen 15
B InputStream zu URL umwandeln Allgemeine Java-Themen 2
C Audiodatei umwandeln (wav->au) Allgemeine Java-Themen 5
Daniel_L Fragen zu RegEx und URL umwandeln Allgemeine Java-Themen 4
S Hexzahl in ASCII umwandeln Allgemeine Java-Themen 3
C DWG in PDF umwandeln Allgemeine Java-Themen 2
H JPanel direkt in PDF umwandeln Allgemeine Java-Themen 2
Developer_X "String" in "int" umwandeln, und dann "int" in "float" Allgemeine Java-Themen 8
E VB-Codesegment in Java umwandeln Allgemeine Java-Themen 8
S umwandeln in .jar Allgemeine Java-Themen 10
D Bild in text tabelle umwandeln Allgemeine Java-Themen 2
J Umwandeln von einem String in ein Datum Allgemeine Java-Themen 8
Daniel_L ASCII in UniCode umwandeln? Allgemeine Java-Themen 14
T html Datei in jrxml Datei (JasperReports) umwandeln Allgemeine Java-Themen 6
J Wrapper Array in korresp. primitiven Array umwandeln? Allgemeine Java-Themen 2
E hex- Stirng in einen float umwandeln Allgemeine Java-Themen 9
T Image in gif umwandeln Allgemeine Java-Themen 14
B Akzentbuchstaben in akzentfreie Variante umwandeln Allgemeine Java-Themen 5
L TextField auslesen und umwandeln Allgemeine Java-Themen 14
J Datentyp "Calendar" umwandeln und ausgeben können Allgemeine Java-Themen 36
G Datumswert String in Integer umwandeln Allgemeine Java-Themen 2
P Typ Object in socket umwandeln Allgemeine Java-Themen 4
J String (in Timestamp-Form) in Timestamp umwandeln Allgemeine Java-Themen 2
P /node()[1]/node()[4]/node()[3] in 1:4:3 umwandeln Allgemeine Java-Themen 1
W Umlaute umwandeln bekomme nur Leerzeichen raus. Allgemeine Java-Themen 11
H int in char umwandeln Allgemeine Java-Themen 7
MQue Object in Integer umwandeln Allgemeine Java-Themen 3
G Anzahl Tage in Datum umwandeln Allgemeine Java-Themen 13
MQue String in int umwandeln Allgemeine Java-Themen 2
C double Zahlen mit drei NachkommaStellen in String umwandeln Allgemeine Java-Themen 2
M Integer in String umwandeln Allgemeine Java-Themen 7
R Java Standalone Prog zu Webapplikation umwandeln Allgemeine Java-Themen 14
G String in Zahl umwandeln Allgemeine Java-Themen 9
S Object nach Integer umwandeln Allgemeine Java-Themen 13
N Unixtime umwandeln Allgemeine Java-Themen 9
K umwandeln des codes um eine .jar datei zu erstellen(am bsp.) Allgemeine Java-Themen 10
R Bits in eine IP-adresse (string) umwandeln Allgemeine Java-Themen 5
E XML dateTime String in Date mit SimpleDateFormat umwandeln Allgemeine Java-Themen 5
TheJavaKid rgb in hex umwandeln Allgemeine Java-Themen 13
G http:// in Link umwandeln Allgemeine Java-Themen 14
G Java Code in Programm umwandeln? Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben