Hallo allerseits,
mit Java habe ich bislang überhaupt nichts am Hut gehabt, durch die Bedingung eine lokale Anwendung erstellen zu müssen kam ich jedoch nun nicht drumrum :>
Es gehgt darum, dass ich X html-Dateien auslesen muss und aus dieser Werte aus definierten Tabellen auslesen muss.
Das Auslesen der Werte ist das Regulären-Ausdrücken und Dateipositionen absolut kein problem und funktioniert fehlerfrei. Was mir derzeit Probleme bereitet ist das generelle Auslesen der Datei. Dies dauert nämlich ungemein lange...
Bei einer 871kb großen Datei dauert das Einlesen der Daten ca. ~5 Minuten
Bei einer 431kb großen Datei dauert das Einlesen der Daten ca. ~2 Minuten
Die Zeiten selbst variieren dabei etwas nach PC Last, das ganze geht durchaus auch in 3 bzw. 1 Minuten. Selbst dann erscheinen mir die Werte immernoch etwas groß, aus diesem Grund würde ich euch bitten einmal meine Auslesefunktion zu begutachten und mir zu sagen, was ich alles falsch bzw. unpraktikabel mache.
Die Vermutung, dass es an der Zeile 23 und dem vermehrten .trim() aufruf liegt, trifft nicht zu. Dies bringt nur einen minimalen Unterschied, also denke ich, dass es an der Zeilenweisen auslesen liegt?
Ich selbst bin sonst nur mit dem PHP-Bereich vertraut und vermisse hier so eine funktion wie file_get_contents()
Naja, bin über jegliches Feedback erhaben. Danke im Vorraus!
mit Java habe ich bislang überhaupt nichts am Hut gehabt, durch die Bedingung eine lokale Anwendung erstellen zu müssen kam ich jedoch nun nicht drumrum :>
Es gehgt darum, dass ich X html-Dateien auslesen muss und aus dieser Werte aus definierten Tabellen auslesen muss.
Das Auslesen der Werte ist das Regulären-Ausdrücken und Dateipositionen absolut kein problem und funktioniert fehlerfrei. Was mir derzeit Probleme bereitet ist das generelle Auslesen der Datei. Dies dauert nämlich ungemein lange...
Bei einer 871kb großen Datei dauert das Einlesen der Daten ca. ~5 Minuten
Bei einer 431kb großen Datei dauert das Einlesen der Daten ca. ~2 Minuten
Die Zeiten selbst variieren dabei etwas nach PC Last, das ganze geht durchaus auch in 3 bzw. 1 Minuten. Selbst dann erscheinen mir die Werte immernoch etwas groß, aus diesem Grund würde ich euch bitten einmal meine Auslesefunktion zu begutachten und mir zu sagen, was ich alles falsch bzw. unpraktikabel mache.
Java:
public String getFileContent(String fn)
{
String sOut = "";
try
{
// Initialisiere Zeitmessung
long starttime = System.currentTimeMillis();
// Datei zum lesen öffnen
System.out.print("Opening File to Read...");
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fn), "UTF16"));
System.out.println("OK");
// Rückgabestring initialisieren
String sTmp;
// Daten auslesen
System.out.print("Fetching data...");
mainPanel.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
while((sTmp = in.readLine()) != null)
{
sOut += sTmp.trim()+"\r\n";
}
mainPanel.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
// Zeitmessung ausgeben
System.out.println(">>> elapsed time: " + ((System.currentTimeMillis() - starttime) / 1000)+"s");
} catch (UnsupportedEncodingException e) {
System.err.println("FEHLER: Falsche Datei-Codierung");
} catch (IOException e) {
System.err.println("FEHLER: Daten nicht gefunden");
}
return sOut;
}
Die Vermutung, dass es an der Zeile 23 und dem vermehrten .trim() aufruf liegt, trifft nicht zu. Dies bringt nur einen minimalen Unterschied, also denke ich, dass es an der Zeilenweisen auslesen liegt?
Ich selbst bin sonst nur mit dem PHP-Bereich vertraut und vermisse hier so eine funktion wie file_get_contents()
Naja, bin über jegliches Feedback erhaben. Danke im Vorraus!
Zuletzt bearbeitet: