Erste Schritte float-Array auslesen

Mathias1000

Mitglied
Wie kann ich float-Daten aus eine Datei auslesen ?

Bei der obigen Methode, bei der ich meine Daten als Text-Datei auslesen, geht es ohne Probleme.

Will ich aber direkt eine Binär-Datei mit Float-Werten auslesen, dann kommt nichts (2. Methode).

Pascal-single sollte gleich sein mit Java-float.

Java:
	private float[] ReadVector(String Datei) {

		int i = 0;
		float[] vec = null;
		try {
			BufferedReader f = new BufferedReader(new InputStreamReader(OpenGLES20Activity.MeinContext.getAssets().open(Datei)));
			String s = f.readLine();
			anzVertex = Integer.parseInt(s);
			vec = new float[anzVertex];
			// while ((s = f.readLine()) != null) {
			for (i = 0; i <= anzVertex - 1; i++) {
				s = f.readLine();
				float fl = Float.parseFloat(s);
				vec[i] = fl;
				// i++;
			}
			f.close();
		} catch (IOException e) {
			Log.e(null, "Fehler beim Lesen der Datei", e);
		}
		return vec;
	}

	private float[] ReadVectorBin(String Datei) {

		int i = 0;
		float[] vec = null;
		try {
			BufferedReader f = new BufferedReader(new InputStreamReader(OpenGLES20Activity.MeinContext.getAssets().open(Datei)));
			float fl = f.read();
			anzVertex = Math.round(fl);
			anzVertex = 18;
			vec = new float[anzVertex];

			for (i = 0; i <= anzVertex - 1; i++) {
				fl = f.read();
				vec[i] = fl;
				i++;
			}
			f.close();
		} catch (IOException e) {
			Log.e(null, "Fehler beim Lesen der Datei", e);
		}
		return vec;
	}
Mit dieser Pascal(Lazarus)-Procedure werden die Binär-Daten geschrieben:
Java:
procedure WriteBin(Datei: string);
var
  i, j, k: integer;
  f: file of single;
  s: single;
begin
  AssignFile(f, Datei);
  ReWrite(f);
  s := Length(Vector) * 3 * 3;
  for i := 0 to Length(Vector) - 1 do begin
    for j := 0 to 2 do begin
      for k := 0 to 2 do begin
        Write(f, Vector[i, j, k]);  // Vector ist eine singleArray
      end;
    end;
  end;
  CloseFile(f);
end;
 
Zuletzt bearbeitet:

strußi

Top Contributor
les doch erst mal die datei in eine Arraylist oder so was ein und übergibt diese an eine Methode die dann den den inhalt der arraylist in dein float[] umwandelt
 

nvidia

Bekanntes Mitglied
les doch erst mal die datei in eine Arraylist oder so was ein und übergibt diese an eine Methode die dann den den inhalt der arraylist in dein float[] umwandelt

Ja oder man fängt erst mal damit an den BufferedReader, der für Text geeignet ist (steht auch in der Dokumentation), gegen etwas zu ersetzen mit dem man reine Binärfiles einlesen kann...
 

Mathias1000

Mitglied
Ich habe da noch was anderes versucht, ausser eine Schutzverletzung kommt nichts. :(

Warscheinlich liegt es wieder mal am Context.

Java:
	private float[] ReadVectorBin2(String Datei) {

		float[] vec = null;
		FileInputStream fis = null;

		try {
			File file = new File(Datei);
			fis = new FileInputStream(file);
			long size = file.length();
			anzVertex=(int) size;
			anzVertex=18;  // Testweise nur 18 floats, die kleinste Datei hat nur 18.
			int by, i = 0;			
			vec = new float[anzVertex];
			for (i = 0; i <= anzVertex - 1; i++) {
				by = fis.read();
				vec[i] = by;
				i++;
			}
		}

		catch (IOException ex) {
			System.out.println(ex);
		} finally {
			if (fis != null)
				try {
					fis.close();
				} catch (Exception ex) {
				}
		}
		return vec;
	}
 

Mathias1000

Mitglied
Was mache ich falsch, jetzt werden Float-Werte eingelsen, aber der Wert des Float stimmt nicht.

Ich habe dies als Muster benutzt: android - Read float values from file using readFloat() - Stack Overflow
Leider muss ich InputStream anstelle FileInputStream nehmen, sonst funtionier die Zeile mit mContext.getAssets().open(Datei); nicht.

Das ganze soll auf Android laufen.

Java:
private float[] ReadVectorBin(String Datei) {
		Environment.getDataDirectory();
		float[] vec = null;
		float fl = 0.0f;
		InputStream is = null;
		DataInputStream dis = null;		
		try {
			is = mContext.getAssets().open(Datei);
			dis = new DataInputStream(is);
			fl = dis.readFloat();  // Hier kommt der erste fehlerhafte Wert.
			anzVertex = Math.round(fl);

			System.out.println("---------------");
			System.out.print(Datei + " - float:");
			System.out.println(fl + " - int:" + anzVertex);
			System.out.println("---------------");

			// anzVertex = Integer.pa
			anzVertex = 18;
			int i = 0;
			vec = new float[anzVertex];
			for (i = 0; i <= anzVertex - 1; i++) {
				fl = dis.readFloat();
				System.out.println(fl);
				vec[i] = fl;
				i++;
			}
			dis.close();
		}
		catch(FileNotFoundException fe)
		{
		  Log.d("ERROR", "FileNotFoundException : " + fe);
		}
		catch(IOException ioe)
		{
		  Log.d("ERROR","IOException : " + ioe);
		}
		return vec;
	}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Array zu float Java Basics - Anfänger-Themen 6
N Mehrdimensionales float Array aus .txt-Datei einlesen? Java Basics - Anfänger-Themen 17
1 float Array deklarieren Java Basics - Anfänger-Themen 10
S casten array in int von float Java Basics - Anfänger-Themen 5
F Array in double/float Java Basics - Anfänger-Themen 4
J einlesen von datei, float und array und und und. Java Basics - Anfänger-Themen 7
G float-Array _ohne_ Arrays.sort sortieren Java Basics - Anfänger-Themen 5
W Double or Float zusammenrechnen Java Basics - Anfänger-Themen 15
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B String to Float Java Basics - Anfänger-Themen 27
A Negative float Werte? Java Basics - Anfänger-Themen 10
J Float Frage Java Basics - Anfänger-Themen 1
K Überprüfen ob Eingabe ein Float ist Java Basics - Anfänger-Themen 4
V Variablen Genauigkeit von float Java Basics - Anfänger-Themen 3
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
MiMa String nach float Konvertieren Java Basics - Anfänger-Themen 23
S Math.ceil für float Java Basics - Anfänger-Themen 1
T Kann erbende Klasse Attribute der vererbenden Klasse anpassen (int -> float)? Java Basics - Anfänger-Themen 9
I Datentypen float-Grenzen (?) Java Basics - Anfänger-Themen 21
X Einfache Frage; wie soll ich die spezielle float var speichern? Java Basics - Anfänger-Themen 2
C Erste Schritte Eingabe mit Float Java Basics - Anfänger-Themen 1
K Erste Schritte switch - Warum sind long/float/double/... nicht erlaubt? Java Basics - Anfänger-Themen 5
M Datentypen Integer und Float Konflikt Java Basics - Anfänger-Themen 3
V Datentypen Position mit Int und Float berechen und ausgeben Java Basics - Anfänger-Themen 5
G double in float umwandeln Java Basics - Anfänger-Themen 2
B Datentypen Test float und double speichern Zahlen nur ungefähr Java Basics - Anfänger-Themen 4
P Variablen 2D float unterteilen Java Basics - Anfänger-Themen 3
W Variablen float rundet beim Bruch rechnen Java Basics - Anfänger-Themen 3
S byte to float Java Basics - Anfänger-Themen 4
K Datentypen Wertebereich float/double - Warum nicht hoch -1 Java Basics - Anfänger-Themen 6
J Falsche Darstellung von Float Java Basics - Anfänger-Themen 2
T Operatoren Float in byte umwandeln Java Basics - Anfänger-Themen 3
N Methoden String to Float Java Basics - Anfänger-Themen 3
G Queue mit int oder float Java Basics - Anfänger-Themen 3
Luk10 Unpräzise float-Werte Java Basics - Anfänger-Themen 10
U Nachbarzahl einer Float Java Basics - Anfänger-Themen 4
R Float Wertebereich Java Basics - Anfänger-Themen 3
V Double schneller als Float? Java Basics - Anfänger-Themen 13
T float[] in float Fehler Java Basics - Anfänger-Themen 6
P Einem Double-Objekt einen float-Wert zuweisen Java Basics - Anfänger-Themen 2
B Datentypen Float ohne .0 ausgeben, sonstige Nachkommastellen aber erhalten Java Basics - Anfänger-Themen 4
K aus String mach Float funktioniert nicht warum? Java Basics - Anfänger-Themen 7
C Probleme mit float und int Java Basics - Anfänger-Themen 3
O 64bit- OS byte, short, int oder long bzw. float oder double? Java Basics - Anfänger-Themen 13
M String Datei in Float-Matrix umwandeln Java Basics - Anfänger-Themen 8
M float/double Anzahl Nachkommastellen ermitteln Java Basics - Anfänger-Themen 18
K float to String Java Basics - Anfänger-Themen 11
T Fehler beim Konvertieren (String --> Float) Java Basics - Anfänger-Themen 5
C Falsches Ergebnis float-Addition Java Basics - Anfänger-Themen 10
N Datentypen Warum Compilerfehler bei float f = 4.0; Java Basics - Anfänger-Themen 2
X Float ausgeben Java Basics - Anfänger-Themen 3
B Datentypen char, int, float in String Variable speichern Java Basics - Anfänger-Themen 4
M Float und double Java Basics - Anfänger-Themen 11
S Datentypen float statt void Java Basics - Anfänger-Themen 3
J String => Float Problem Java Basics - Anfänger-Themen 10
C Datentypen Float und Double Java Basics - Anfänger-Themen 2
M Float auf bestimmte Nachkommazahl runden Java Basics - Anfänger-Themen 3
D Datentypen Parse float[] to int[] Java Basics - Anfänger-Themen 4
S Long und Float Frage Java Basics - Anfänger-Themen 2
lenniii float[] Java Basics - Anfänger-Themen 2
P float Eingabe wird nicht akzeptiert, obwohl Variable als float deklariert Java Basics - Anfänger-Themen 2
M Vergleich Float-, Doublewert Java Basics - Anfänger-Themen 10
A text mit float ausgeben Java Basics - Anfänger-Themen 14
G float - Frage Java Basics - Anfänger-Themen 2
G Float schneidet nach dem Rechnen auf eine Stelle ab Java Basics - Anfänger-Themen 9
G String zu float oder int Java Basics - Anfänger-Themen 3
P Float wisenschaftliche Ausgabe/Exponenten Java Basics - Anfänger-Themen 2
G Float Nachkommazahlen vergleichen Java Basics - Anfänger-Themen 7
G PRoblem mit rekursiver float additions methode Java Basics - Anfänger-Themen 9
O Object in Float konvertieren Java Basics - Anfänger-Themen 2
F bei einem Float nur x Stellen nach dem Komma anzeigen ? Java Basics - Anfänger-Themen 7
D Formatierung: ganzzahlige Float Werte nach Int Java Basics - Anfänger-Themen 2
V Exponentieren mit Exponenten vom Typ float Java Basics - Anfänger-Themen 2
B Vector nach float[] casten Java Basics - Anfänger-Themen 6
S float in int umwandeln? Java Basics - Anfänger-Themen 4
N String -> float Java Basics - Anfänger-Themen 3
M Float-Zahl auf x Stellen beschränken Java Basics - Anfänger-Themen 6
M Problem mit float und nullzuweisung Java Basics - Anfänger-Themen 15
M Float in String umwandeln Java Basics - Anfänger-Themen 9
G float in int wandeln Java Basics - Anfänger-Themen 2
H float Java Basics - Anfänger-Themen 3
K Eingabe von float werten Java Basics - Anfänger-Themen 4
sambalmueslie Float.parseFloat Java Basics - Anfänger-Themen 5
G Frage zur Objekt-Wrapper Float ? Java Basics - Anfänger-Themen 6
R float Variable aus String Java Basics - Anfänger-Themen 8
D HILFE bei float to String Java Basics - Anfänger-Themen 6
& String to Float Java Basics - Anfänger-Themen 7
G Frage zur Eingabe von Float ? Java Basics - Anfänger-Themen 4
W String into Float Java Basics - Anfänger-Themen 7
D Zahlen von Typ float aus einer Textdatei lesen Java Basics - Anfänger-Themen 2
R switch erlaubt keine float/double-Rechnung Java Basics - Anfänger-Themen 5
S Dumme Frage... String in Float umwandeln Java Basics - Anfänger-Themen 10
M Char to Float umwandeln. Java Basics - Anfänger-Themen 4
W nach Eingabe prüfen: ob int, double,float,... Java Basics - Anfänger-Themen 3
A Zeichenkette teilen mit Substring oder Char Array Java Basics - Anfänger-Themen 14
A 6. Element aus einem Array zurückgeben Java Basics - Anfänger-Themen 1
A Was bedeutet bei einem Array "int a [MAX][MAX];", Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben