Portal > Foren > Java > Allgemeine Java-Programmierung > ByteStream mit URL koppeln
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 12.11.2005, 14:34 Nach oben    #1
conan2
Gast
 
Beiträge: n/a
Standard ByteStream mit URL koppeln

Ich will ein Programm schreiben, das den Inhalt einer Datei aus dem Internet in eine Datei am System kopiert. Da ich aber eine Bild-datei kopieren will, kann ich keinen CharacterStream nehmen, sondern muss einen ByteStream, also z.b. FileInputStream benutzen. Dieser hat aber keinen Konstruktor der eine URL als Parameter erwartet. Es funktioniert auch nicht, wenn ich new FileInputStream("www.xyz.com/abc.jpg") schreibe. Gibts du eine Möglichkeit, wie ich dieses Problem lösen kann?
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.11.2005, 19:28 Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
Standard

probiers mal mit
Code:
URL u = new URL("www.somepage.de");
InputStream in = u.openConnection().getInputStream();
so hast du einen input stream auf die url...
beny_mcde ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.11.2005, 18:43 Nach oben    #3
conan2
Gast
 
Beiträge: n/a
Standard

Thx so habs ich lösen können
ich hab dann
Code:
BufferedReader in = new BufferedReader(url.openStream());
genommen. Hier der vollständige code der funktion:
Code:
static void writeURLToFile(URL url, File file) { 
 try { 
    if (file.isDirectory()) 
 	  throw new IllegalArgumentException(); 
    BufferedInputStream in; 
    FileOutputStream out; 
    in = new BufferedInputStream(url.openStream()); 
    out = new FileOutputStream(file); 
    byte[] buf = new byte[4096]; 
    int len; 
    while ((len = in.read(buf)) > 0) 
 	  out.write(buf, 0, len); 
    out.close(); 
    in.close(); 
 } catch (Exception e) { 
    e.printStackTrace(); 
 } 
 }
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.11.2005, 16:13 Nach oben    #4
Erfahrener Benutzer
 
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
Standard

ok das siehtja schon ganz gut aus....
du solltest aber die streams in einem finally block nach dem catch block schließen und nicht im try block.
wenn beim auslesen der url oder beschreiben der datei eine exeption geworfen wird, werden die streams nicht geschlossen.
Code:
static void writeURLToFile(URL url, File file) { 
    BufferedInputStream in; 
    FileOutputStream out; 
 try { 
    if (file.isDirectory()) 
 	  throw new IllegalArgumentException(); 

    in = new BufferedInputStream(url.openStream()); 
    out = new FileOutputStream(file); 
    byte[] buf = new byte[4096]; 
    int len; 
    while ((len = in.read(buf)) > 0) 
 	  out.write(buf, 0, len); 

 } catch (Exception e) { 
    e.printStackTrace(); 
 }  finally{
   if(out!=null){
    out.close();
   }
   if(in!=null){
    in.close();
   }
 }
 }
beny_mcde ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.11.2005, 14:09 Nach oben    #5
conan2
Gast
 
Beiträge: n/a
Standard

oh, thx darauf wär ich nicht gekommen, ich benutz finally halt viel zu selten :rolleyes:
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.11.2005, 09:25 Nach oben    #6
Erfahrener Benutzer
 
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
Standard

ich auch, aber versuchs mir gerade an zu gewöhnen...
beny_mcde ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.11.2005, 21:15 Nach oben    #7
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Du müsstest eigentlich jeden Aufruf von close noch in einen eigenen try-catch-Block im finally-Block packen.
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.11.2005, 09:21 Nach oben    #8
Erfahrener Benutzer
 
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
Standard

ich weiß... ist mir hinterher auch aufgefallen, aber sieht übersichtlicher aus...
und spätestens wenn mans in die ide reinkopiert merkt man das ja.....
beny_mcde ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SessionID per Url auf Portal-Seite Artemis Fragen ans Team 7 09.07.2007 20:25
[JSP] Aktuelle Seite (URL) auslesen WarrenFaith Allgemeine Java-Programmierung 0 11.03.2007 15:41
[JAVA] Wie man aus Java mit einem PHP-Script kommuniziert sparrow Tutorials 0 25.03.2006 22:24
htaccess - mod_rewrite - requested URL was not found Ben Tools, Server, Betriebssysteme 5 15.03.2006 18:30
[PHP] Wie übergebe ich Daten per URL? Ben Tutorials 0 05.12.2004 14:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:31 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44