Hoi,
ich hab da mal ne Frage. Und zwar habe ich ein kleines Tool, was eine Webseite ansurft und die XML die es zurückerhält (ist ne Schnittstelle) als Datei speichert. Das Problem ist, dass die Dateien die zurückkommen locker mal 200 - 300 kb Groß sind und es daher durchaus bis zu 5 Sekunden dauern kann, bis er einmal durch den kompletten BufferedReader geeiert ist. Ich will eigenlich einfach nur den Response der Webseite (ist ne API) die immer XML zurückgibt in eine Datei schmeißen. Sprich zwischendrin findet keine Verarbeitung statt. Diese findet erst im Anschluss statt.
Daher meine Frage. Gibt es eine Möglichkeit irgendwie den gesamten Inhalt eines Readers in eine Datei zu dumpen und nicht den Umweg über Zeilenweises einlesen zu gehen? eine Funktion ReadToEnd() gibt es leider nicht.
Folgende Funktion nutze ich bisher:
Würde mich über nen Tipp wie ich das beschleunigen könnte wirklich freuen. Momentan kostet mich nämlich nur das Erstellen von ungefähr 25 XMLs schon fast 3 Minuten und das ist einfach zu lange. Ich bedanke mich schon mal im Vorraus für eure Hilfe.
ich hab da mal ne Frage. Und zwar habe ich ein kleines Tool, was eine Webseite ansurft und die XML die es zurückerhält (ist ne Schnittstelle) als Datei speichert. Das Problem ist, dass die Dateien die zurückkommen locker mal 200 - 300 kb Groß sind und es daher durchaus bis zu 5 Sekunden dauern kann, bis er einmal durch den kompletten BufferedReader geeiert ist. Ich will eigenlich einfach nur den Response der Webseite (ist ne API) die immer XML zurückgibt in eine Datei schmeißen. Sprich zwischendrin findet keine Verarbeitung statt. Diese findet erst im Anschluss statt.
Daher meine Frage. Gibt es eine Möglichkeit irgendwie den gesamten Inhalt eines Readers in eine Datei zu dumpen und nicht den Umweg über Zeilenweises einlesen zu gehen? eine Funktion ReadToEnd() gibt es leider nicht.
Folgende Funktion nutze ich bisher:
Java:
private void GetXML(String urlRaw, String filePath) throws MalformedURLException, IOException {
URL url = new URL(urlRaw);
HttpsURLConnection.setDefaultHostnameVerifier((host, sess) -> "aspserver.topm.de".equals(host));
URLConnection request = (HttpsURLConnection)url.openConnection();
BufferedWriter sw;
try (BufferedReader sr = new BufferedReader(new InputStreamReader(request.getInputStream()))) {
sw = new BufferedWriter(new FileWriter(new File(filePath)));
String line;
while ((line = sr.readLine()) != null) {
sw.write(line);
}
}
sw.close();
}
Würde mich über nen Tipp wie ich das beschleunigen könnte wirklich freuen. Momentan kostet mich nämlich nur das Erstellen von ungefähr 25 XMLs schon fast 3 Minuten und das ist einfach zu lange. Ich bedanke mich schon mal im Vorraus für eure Hilfe.