Micka
Fortgeschrittenes Mitglied
- 1
Hallo,
ich bin dabei eine eigene App zu entwickeln in der ich Daten in eine Datei schreiben möchte. Das ganze muss möglichst schnell von statten gehen da viele Daten pro Sekunde weggeschrieben werden müssen.
Ich habe bereits herausgefunden das es schneller ist ein Bytearray wegzuschreiben als z.B: ein BitString. Das Bytearray hat leider eine variable Länge.
Nun habe ich das Problem, ich weiß nicht wie ich die Datei wieder auslesen kann, so dass ich bytearray für bytearray die Daten erhalte. Ohne Trennzeichen ist das wegeschreiben am aller schnellsten, aber ich denke es ist notwendig die einzelnen Arrays irgendwie voneinander zu trennen. Deshalb habe ich nach jedem Array noch "\n\n".getBytes() in die Datei schreiben lassen. Aber wie lese ich das ganze jetzt so wieder aus das ich saubere bytearrays erhalte?
Im folgenden noch kurz mein Code mit dem ich das ganze weggeschrieben habe:
ich bin dabei eine eigene App zu entwickeln in der ich Daten in eine Datei schreiben möchte. Das ganze muss möglichst schnell von statten gehen da viele Daten pro Sekunde weggeschrieben werden müssen.
Ich habe bereits herausgefunden das es schneller ist ein Bytearray wegzuschreiben als z.B: ein BitString. Das Bytearray hat leider eine variable Länge.
Nun habe ich das Problem, ich weiß nicht wie ich die Datei wieder auslesen kann, so dass ich bytearray für bytearray die Daten erhalte. Ohne Trennzeichen ist das wegeschreiben am aller schnellsten, aber ich denke es ist notwendig die einzelnen Arrays irgendwie voneinander zu trennen. Deshalb habe ich nach jedem Array noch "\n\n".getBytes() in die Datei schreiben lassen. Aber wie lese ich das ganze jetzt so wieder aus das ich saubere bytearrays erhalte?
Im folgenden noch kurz mein Code mit dem ich das ganze weggeschrieben habe:
Code:
//bigData ist ein zweidimensionales byte[]
String state,zeile, header;
File file, Root, Dir;
FileOutputStream fos;
state = Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state))
{
Root = Environment.getExternalStorageDirectory();
Dir = new File(Root.getAbsolutePath()+"/LudvikAppFiles");
if(!Dir.exists())
{
Dir.mkdir();
}
file = new File(Dir, filename + ".txt");
fos = null;
try
{
fos = new FileOutputStream(file);
for(byte[] mData: bigData)
{
fos.write(mData);
fos.write("\n\n".getBytes());
}
fos.close
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
}else
{
//ERROR
}