![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
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?
|
|
| | Nach oben #3 |
| Gast
Beiträge: n/a
|
Thx so habs ich lösen können ich hab dann Code: BufferedReader in = new BufferedReader(url.openStream()); 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();
}
}
|
|
| | Nach oben #4 |
| Erfahrener Benutzer Registriert seit: 28.08.2004 Ort: konstanz am bodensee
Beiträge: 190
|
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();
}
}
}
|
| | |
| | Nach oben #7 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.110
|
Du müsstest eigentlich jeden Aufruf von close noch in einen eigenen try-catch-Block im finally-Block packen.
__________________ Patrick Gotthardts Weblog. |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ä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 |