Nerds, Programmierer, Jscripter

DeletedUser745

Gast
*thread mit einem Trippelpost ausgrab*

Ich habe wieder mal ein Problem und komme nicht mehr weiter.

Und nämlich bastle ich mir gerade eine kleine Java Lib für Stämme Tools und dort ist auch eine methode für das runterladen der Weltdaten enthalten.
Die funktioniert auch, jedoch geht das laden sehr lange, z.b. für w30.de brauche ich 5-10 min nur für die dörfer.
Bis jetzt mach ich es einfach via HttpURLConnection byte weise, aber wirklich effizient geht das so nicht.
hat jemand ne idee, wie man das ganze schneller machen könnte?
 

DeletedUser2856

Gast
Lad die Datei in einen Buffer und lies sie nicht byteweise, sondern zeilenweise aus. Rein theoretisch sollte dies schneller gehen... (Ich nehme an, dass du die von DS zur Verfügung gestellten Weltdaten benutzt?!)

Beispiel:
PHP:
URL myConnection = new URL(txt2.getText());
URLConnection connectMe = myConnection.openConnection();
          
InputStreamReader lineReader = new InputStreamReader(connectMe.getInputStream());
BufferedReader buffer = new BufferedReader(lineReader);
String read = buffer.readLine();
txtA1.setText(read);
(Hier gefunden, stammt also nicht von mir und ist nicht getestet...)
 

DeletedUser745

Gast
:roflmao:, dass mir das nicht selber eingefallen ist...

habe jetzt mal alles mit nem BufferedReader gemacht, aber i-wie bleibt der download immer i-wo hängen.

Hier mein Code:
Code:
OutputStream os = new BufferedOutputStream(new FileOutputStream("files/worldfiles/" + dir + "/" + type + ".txt"));
        
        URL myConnection = new URL(url_str);
        URLConnection connectMe = myConnection.openConnection();

        InputStreamReader lineReader = new InputStreamReader(connectMe.getInputStream());
        BufferedReader buffer = new BufferedReader(lineReader);
        
        String line; 
        while ((line = buffer.readLine()) != null) {
            System.out.println(line);            
            os.write(line.getBytes());
            os.flush();
        }               
        buffer.close(); 
        os.close();
 

DeletedUser2856

Gast
Ich weiss nicht, ob Java auch irgend ein ConnectionTimeout oder max_filesize wie PHP hat... Aber vielleicht hilft es ja temporär die Datei komplett runterzuladen und dann lokal zu öffnen.

Bleibt der Download immer am gleichen Ort hängen oder immer irgendwo anders?
 

DeletedUser2856

Gast
Mal den Thread hier ausgraben.

Ich suche einen MySQL fortgeschrittenen bis Experten, der mich bei meinem Tool respektive der Datenbank dazu beraten kann. Die Datenbankplanung habe ich vernachlässigt - erstens weil ich selbst nicht gross Ahnung von MySQL habe und zweitens, weil ich nicht gerne plane - und nun ist es an der Zeit, dass einige Tabellen bereits 600k + Einträge haben und da gezielt die 25 richtigen rauszunehmen, dauert 500ms, was nicht optimal ist.

Wenn sich also einer damit ein wenig auskennt, wäre ich um ein paar Tipps froh :smile:
Ich kann gerne auch einen Gastzugang zur MySQL DB einrichten.

Nachtrag:
Mit Indizes funktionierts wunderbar. Es dauert nun im Schnitt noch etwa 200ms, bis die Daten da sind. Damit kann ich leben. Falls aber trotzdem ein Experte hier ist, würde ich gerne dazu lernen :wink:
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
Kann mir jemand ein script basteln, das incs nach Herkunftsdorf sortiert?
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
Nach herkunftsdorf? ne ich glaub nicht dass das bereits integriert ist, sonst hätt ich es gefunden als ich es gesucht hab..
 

DeletedUser

Gast
Wenn Angriffe umbenannt sind gibste die Koords des betroffenen Dorfes in den Filter ein. Muss man dir denn alles erklären?
 

DeletedUser

Gast
Ich möchte aber sortieren, nicht filtern. Ist zwar was ähnliches aber nicht ganz das selbe :wink:
 
Oben