Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » Mit Java eine Datei downloaden via http://

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.12.2005, 17:54 Uhr
~Iam Wizel
Gast


Hallo,
warum läuft dieser code nicht? Die Funktion soll die Datei sURL in die Datei sPath downloaden.


Code:
private static void download(String sURL, String sPath){
        System.out.println("Download started ...\n" +
                            sURL);
              
        URL url;
        InputStream in = null;
        OutputStream out = null;
        
        try {
            // oeffne input-Stream von URL
            url = new URL(sURL);
            in = url.openStream();
              
        } catch (Exception e) {}

        try {
            // oeffne output-Stream zu Datei
            out = new FileOutputStream(sPath);
            int len;
            byte[] b = new byte[128];
            
            // kopiere...
            while ((len = in.read(b)) != -1){
                out.write(b, 0, len);
            }

            // aufraeumen...
            out.close();
            in.close();
        } catch (Exception e) {}
        System.out.println("(Complete.)");
     }

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.12.2005, 19:37 Uhr
virtual
Sexiest Bit alive
(Operator)


Tja, warum gehst Du denn nicht hin, und gibst die Exceptions aus? - Momentan ignorierst Du die Exceptions, so kann das nix geben
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.12.2005, 20:16 Uhr
~Iam Wizel
Gast


Danke schon mal dafür. Nun lasse ich mir im Exception-Block die Variable e ausgeben und erhalte auch eine Fehlermeldung.


Zitat:

java.net.SocketException: Unrecognized Windows Sockets error: 10106: create



auf deutsch:

Zitat:

java.net.SocketException: Unerkannte Windows Fassungsfehler: 10106: Generierung



Was bedeutet das?
Und was muss ich dagegen machen.
Die Firewall fragt auch nicht ob mein tool heraus darf. was sie aber sollte.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.12.2005, 20:43 Uhr
virtual
Sexiest Bit alive
(Operator)


Hm, schwer zu sagen... also den Fehler kann man in der MSDN erfragen, die symb. Konstante lautet WSAEPROVIDERFAILEDINIT.
Wenn man danach googelt, bekommt man im Zusammenhang mit Java keine ganz klare auskunft, jedenfalls nicht ich, der ja nicht das Problem hat und foglich nicht genauer sucht
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.12.2005, 07:15 Uhr
~Iam Wizel
Gast


blöder k..k wenn nix klappt!
hat jemand einen bessere code lösung um eine Datei aus dem Netz zu laden?

Habe selber schon zwei funktionen/metohden geschrieben

1.


Code:
public class bot
{

    public static String ABC[]; // Array Deklaration
    
    public static void main (String args[])
    {
        GetHtmlTags("a", "<a href=\"here\ target=\"_blank\">");
        
        if(ABC.length == 0){
            System.out.println("Err.(no HTML-Tags found)");
        }
        else{
            
        }
    }
    
    private static void GetHtmlTags(String Tag, String Code){
         /*
          Die Funktion GetHtmlTag() liefert aus einem HTML-Code
          alle Tags eines vorher def. Typs zurück.
          
          Die einzelnen Tags werden an einander gehängt und durch
          das Zeichen | von einander getrennt.
        */
          
        int s = 0;    // Start-Position des HTML-Tag
        int e = -1;    // End-Position des HTML-Tag
        String founds = "";

        Tag = "<" + Tag + " ";

        do{
            s = Code.indexOf(Tag, s);        // Start-Position suchen
            if(s != -1){
                s += Tag.length();            // Tag-Namen überspringen (Soll d. Speicher schonen.)
                e = Code.indexOf(">", s);    // End-Position suchen
                if(e != -1){
                    founds += Code.substring(s, e).trim() + "|";
                    s = e + 1;
                }
            }
        } while(s != -1);
        
        // Anzahl der gefundenen HTML-Tags ermitteln
        s = 0;
        int count = 0;
        while(founds.indexOf("|", s) != -1){
            count++;
            s++;
        }
        
        ABC = new String[count]; // Array Initialisierung
        
        // gefundene HTML-Tags ins Array packen
        s = 0;
        for(int n = 0; n < count; n++){
            e = founds.indexOf("|", s);
            ABC[n] = founds.substring(s, e);
            s = e + 1;
        }
    }
    
    private static String GetAttributWert(String Attribut, String Tag){
         /*
          Die Funktion GetAttributWert() liefert aus einem HTML-Tag
          den Wert eines vorher def. Attributes zurück.
        */
  
        int s = 0;    // Start-Position des Attribut-Wertes
        int e = -1;    // End-Position des Attribut-Wertes
        int len = Tag.length(); // Länge des HTML-Tag
        
        do{
            s = Tag.indexOf(Attribut, s); // Position des Attributes suchen
            if(s == -1){
                return "Err.(attr. not found)"; // Das Attribut wurde nicht gefunden
            }
            else{
                if(s - 1 > -1){
                    // Prüfen ob es sich um das Attribut handelt.
                    // Das 1. Zeichen vor dem Attribut muss eines der folgenden sein.
                    if( ( Tag.substring(s - 1, s).equals("\"") == false  )
                      && ( Tag.substring(s - 1, s).equals("'") == false )
                     && ( Tag.substring(s - 1, s).equals(" ") == false  ) ){
                        s++;
                        continue;
                    }
                 }
            }
            s += Attribut.length(); // Attribut überspringen
            // Wertezuweisung, das = Zeichen suchen
            if(s > (len - 1)){
                return "Err.(= not found)"; // Der Tag ist zu ende
            }
            else{
                // Position des ersten Zeichen nach evtl. Leerzeichen ermitteln
                while(Tag.substring(s, s + 1).equals(" ")){
                    s++;
                    if(s > (len - 1)){
                        return "Err.(= not found)"; // Der Tag ist zu ende
                    }
                }
            }
        //Muss ein = Zeichen sein. Ansonsten wurde dem Attribut kein Wert zugewiesen.
        } while((Tag.substring(s, s + 1).equals("=")) == false);
        
        s++; // Ein Zeichen weiter zählen
        if( s > (len - 1)){
            return "Err.(end after =)"; // Der Tag ist zu ende
        }
        
        // Position des ersten Zeichen nach evtl. Leerzeichen ermitteln
        while(Tag.substring(s, s + 1).equals(" ")){
            s++;
            if( s > (len - 1) ){
                return "Err.(end after =)"; // Der Tag ist zu ende
            }
        }

        if(Tag.substring(s, s + 1).equals("\"")){
            s++; e = Tag.indexOf("\"", s); // Eingebettet in " Zeichen
        }
        else{
            if(Tag.substring(s, s + 1).equals("'")){
                s++; e = Tag.indexOf("'", s); // Eingebettet in ' Zeichen
            }
        }
        
        if(e == -1){ // Nicht eingebettet
            e = Tag.indexOf(" ", s);
        }
        if(e == -1){
            e = len;
        }
        
        return Tag.substring(s, e).trim();
     }
}



hinzu sollte eine download methode kommen die alle links einer bestimmten art z.B Bilder oder Musik von einer Website herunterläd so das man nicht jeden link nacheinander anklicken muss.

kann mit bitte wär helfen auch ein Tutorial zum tehma wäre super.
habe bis jetz nur den für mich nicht zugebrauchenden code in ersten post gefunden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
21.12.2005, 20:31 Uhr
rizi



hier bitte schön ein auszug aus meinem download manager, damit lädst du eine beliebige datei aus dem netzt, funktioniert 100%,einfach fragen wenn was unklar ist.
ich hoffe das beantwortet deine frage, wenn neine, erkläre mir noch mal was du genau möchtest
lg rizi


Code:

// ### Download - Downloadberechnung ### //
    public void download() {
        try {
            URL download = new URL("http://www.jscape.com/inetfactory/pub/inetfactory.zip");
        
            URLConnection urlcon = download.openConnection();
            BufferedInputStream oi = new BufferedInputStream(urlcon.getInputStream());
            BufferedOutputStream oo = new BufferedOutputStream(new FileOutputStream("C:\\temp.zip"));
           whole_size = urlcon.getContentLength();//Gesamtgröße
            buffer = new byte[buffer_size];//100kb Puffer
            while ((output = oi.read(buffer)) != -1) {
                oo.write(buffer, 0, (int) output);
                oo.flush();
                downloaded_size += output;//wieviel bereits downgeloadet wurde
                download_percent = downloaded_size * 100 / whole_size;
            }
            oo.close();
                   } catch (IOException e) {
            JOptionPane.showConfirmDialog(null,
                    "Cs_Download_Manager:download():IOException:\n" + e.getMessage() + "\n Download failed!",
                    "ERROR",
                    JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
        }
    }

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: