2Danke
ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
400
400
EMPFEHLEN
-
Hallo zusammen,
vor kurzem habe ich ein kleines Programm geschrieben das eine Datei aus dem Internet, auf meinem Rechner speichert. Der Code sah so ähnlich aus wie dieser hier:
Code :1 2 3 4 5 6 7 8 9 10 11
URL url = new URL("http://foo.bar"); InputStream is = url.openStream(); File out = new File("foo.bar"); FileOutputStream fos = new FileOutputStream(out); int oneChar; while ((oneChar=is.read()) != -1) { fos.write(oneChar); } is.close(); fos.close();
Meine Frage ist jetzt, ob es eine Möglichkeit gibt, den selben Stream zu verwenden um eine andere Datei herunter zu laden. Also die URL zum Beispiel auf "http://foo2.bar" zu ändern. Die gleiche Frage interessiert mich auch im Bezug auf den OutputStream, kann ich ihm sagen, dass er in eine andere Datei schreiben soll?
Schon mal vielen Dank im Voraus.
Nimmer
-
15.09.11 08:25 #2
Hi,
also meines erachtens nach geht das nicht. Du musst für jede Datei einen neuen Stream, sowohl Input- als auch Output-Stream, öffnen. Warum willst du denn auch alles über einen In-/Outputstream machen?
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
15.09.11 08:31 #3SE Tutorials.de Gastzugang
Laut HTTP/1.1 Spezifikation ist es durchaus möglich EINE Verbindung für eine Reihe von Daten zu verwenden ... aber das ist ein ganz schön kompliziertes Thema und wird noch lange nicht von jedem Server unterstützt.
btw : bei HTTP-Daten IMMER URL.getConnection() verwenden und die erhaltene URLConnection mit instanceof HttpURLConnection checken. Bei einer einfach Stream-Connection kann es schnell zu Problemen kommen.
-
Meine Güte, ihr seid vielleicht schnell!
Schonmal danke für eure Antworten.
@Fabio: Bisher habe ich mich noch nicht so sehr mit dem Thema beschäftigt, und bei der Suche im Internet bin ich immer auf Streams gestoßen, daher dachte ich es wäre das übliche Vorgehen.
-
15.09.11 10:10 #5SE Tutorials.de Gastzugang
Ja ... das ist schon richtig das sowas im Endeffekt über Streams geht ... allerdings sollte man Vorhandenes nicht ignorieren um es sich nicht unnötig kompliziert zu machen.
Wir hatten erst vor kurzem etwas ähnliches bei dem der User auch nur openStream() verwendete. Das Problem war jedoch das der von ihm gewählte Dienst einen User-Agent erwartete ... den man so nicht setzen kann. Eine HttpURLConnection macht sowas baer möglich. Auch kannst du damit z.B. Session-Cookie abfragen und setzen ...
Alles in Allem ist sowas dann doch einfacher als alles RAW mit Streams zu machen.
Ähnliche Themen
-
Richtige Syntax bei Operatorüberladung, wann sind "friend", "const", "&" nötig?
Von mrs_schokokeks im Forum C/C++Antworten: 4Letzter Beitrag: 25.08.10, 19:13 -
Eingabe in der timeline: "time*100" - bei Effekt "turbulentes Versetzen"-"Evolution"
Von MTMonline im Forum Videoschnitt, Videotechnik & -produktionAntworten: 2Letzter Beitrag: 25.04.08, 09:49 -
Finder methods + JBoss + Was expecting one of: "CONCAT" "SUBSTRING" ... "(" ... <STRI
Von cengizhdde im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 6Letzter Beitrag: 27.05.05, 15:29 -
"Scale Mode" eines "Image" Steuerelements ändern
Von daDom im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 24.04.04, 01:45 -
meldung "unsecure items ..usw" bei ändern eines frames
Von Rios im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 29.01.04, 09:18





Zitieren
Login





