Hi an alle!
Ich benutze mit Java 5 von der Klasse "ObjectOutputStream / ObjectInputStream" die Methode "writeObject( ... ) / readObject()", um die sämtlichen Daten in ArrayList in die Datei zu schreiben bzw. aus der Datei zu lesen!
Es funktioniert alles prima.
Das Problem ist nur, dass die CPU-Auslastung während Datei-Lesen immer ca. bis zu 50 - 52 %!
Das kann ich eigentlich sehr gut nachvollziehen, warum das so ist, aber, um die mittelhohe CPU-Auslastung zu vermeiden, möchte ich gerne von euch hören, wie ich das ganze Objekt aus der Datei, ohne zu blockieren, effektiver auslese!
Hier ist meine Funktion zum Schreiben:
Hier ist meine Funktion zum Lesen:
Gruß
Iron Monkey
Ich benutze mit Java 5 von der Klasse "ObjectOutputStream / ObjectInputStream" die Methode "writeObject( ... ) / readObject()", um die sämtlichen Daten in ArrayList in die Datei zu schreiben bzw. aus der Datei zu lesen!
Es funktioniert alles prima.
Das Problem ist nur, dass die CPU-Auslastung während Datei-Lesen immer ca. bis zu 50 - 52 %!
Das kann ich eigentlich sehr gut nachvollziehen, warum das so ist, aber, um die mittelhohe CPU-Auslastung zu vermeiden, möchte ich gerne von euch hören, wie ich das ganze Objekt aus der Datei, ohne zu blockieren, effektiver auslese!
Hier ist meine Funktion zum Schreiben:
Java:
public static synchronized void writeListToFile( ArrayList list, String file )
{
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try
{
fos = new FileOutputStream( file );
oos = new ObjectOutputStream( fos );
oos.writeObject( list );
}
catch (Exception e) {
e.printStackTrace();
}
finally
{
try
{
if( oos != null )
{
oos.flush();
oos.close();
oos = null;
}
if( fos != null )
{
fos.close();
fos = null;
}
}
catch (IOException e) {
}
}
}
Hier ist meine Funktion zum Lesen:
Java:
public static synchronized ArrayList readListFromFile( String file )
{
if( !isListInFile( file ) )
return null;
FileInputStream fis = null;
ObjectInputStream ois = null;
ArrayList list = null;
try
{
fis = new FileInputStream( file );
ois = new ObjectInputStream( fis );
list = (ArrayList) ois.readObject();
}
catch (Exception e) {
e.printStackTrace();
}
finally
{
try
{
if( ois != null )
{
ois.close();
ois = null;
}
if( fis != null )
{
fis.close();
fis = null;
}
}
catch (IOException e) {
}
}
return list;
}
public static synchronized boolean isListInFile( String file )
{
File f = new File( file );
return (f.length() > 0);
}
Gruß
Iron Monkey
Zuletzt bearbeitet: