Wie kann ich mit Java eine (XML) Datei von einem fremden Server einlesen? Das ist relativ einfach getan, wir müssen einfach eine neue URLConnection öffnen welche die URL zu der XML Datei als URL-Objekt übergeben bekommt. Klingt kompliziert, ist es aber nicht. Hier mal der Code dazu:
import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; [...] try { // Verbindung aufbauen URL url = new URL("http://www.webmaster-eye.de/rss.xml"); URLConnection connection = url.openConnection(); // XML Daten einlesen result = new ByteArrayOutputStream(); InputStream input = connection.getInputStream(); byte[] buffer = new byte[1000]; int amount = 0; // Inhalt lesen while(amount != -1){ result.write(buffer, 0, amount); amount = input.read(buffer); } }catch(Exception e){ // Fehlermeldung JOptionPane.showMessageDialog(null,"Es konnte keine Verbindung mit dem Internet hergestellt werden. Ist ein Proxy nötig?","Verbindungsproblem",JOptionPane.ERROR_MESSAGE); } |
Der Code baut zuerst eine Verbindung zu dem Server auf, erstellt dann einen Buffer inden der Dateiinhalt geladen wird. Mit
System.out.println(result.toString()); |
kann man das Ganze dann Ausgaben oder eben weiter verarbeiten.
Oder auch so:
InputStream is = null;
try
{
URL url = new URL( " http://www.tutego.de/aufgaben/bond.txt " );
is = url.openStream();
System.out.println( new Scanner( is ).useDelimiter( "Z" ).next() );
}
catch ( Exception e ) {
e.printStackTrace();
}
finally {
if ( is != null )
try { is.close(); } catch ( IOException e ) { }
}
}
Jop, das geht auch :)
Hallo,
mir wäre sehr geholfen gewesen wenn Du noch die import statements reingeschrieben hättest.
Sorry, kann ja nicht schaden, die Imports lauten:
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;