Hallo!
Wie in dem Subject kurz beschrieben, muss ich Zahlen in eine Datei als Bytes speichern und diese wieder auslesen spaeter. Ich hatte mir dafuer erst ein kurzes Beispiel schreiben wollen.
Also in die Datei schreiben:
Damit ich das machen kann, muss ich ja erst mal die ints in Bytes umwandeln, ich dachte das soll das:
BigInteger.valueOf(i).toByteArray()) uebernehmen, oder ist das FALSCH?
Weil wenn ich dann die Datei wieder einlese, ganz einfach mit:
kommen nur zahlen von 1 bis 128 raus und dann negative zahlen :S
was machee ich hier falsch??????
Wie in dem Subject kurz beschrieben, muss ich Zahlen in eine Datei als Bytes speichern und diese wieder auslesen spaeter. Ich hatte mir dafuer erst ein kurzes Beispiel schreiben wollen.
Also in die Datei schreiben:
Java:
FileOutputStream writer;
try {
writer = new FileOutputStream(filePath);
for (int i =0;i < 2000000-1;i+=2) {
writer.write(BigInteger.valueOf(i).toByteArray()); //Das hier falsch??
writer.write(BigInteger.valueOf(i+1).toByteArray()); //Das hier falsch??
}
writer.flush();
writer.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
Damit ich das machen kann, muss ich ja erst mal die ints in Bytes umwandeln, ich dachte das soll das:
BigInteger.valueOf(i).toByteArray()) uebernehmen, oder ist das FALSCH?
Weil wenn ich dann die Datei wieder einlese, ganz einfach mit:
Java:
try {
FileInputStream st = new FileInputStream(filePath;
BufferedInputStream bufin = new BufferedInputStream(st);
int length;
byte[] eineZahl = new byte[2];
try {
while ((length = bufin.read(eineZahl)) != -1) {
for (int i = 0; i < length; i++) {
System.out.print(eineZahl[i] + " ");
}
System.out.println();
}
st.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
kommen nur zahlen von 1 bis 128 raus und dann negative zahlen :S
was machee ich hier falsch??????