tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
368
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Luis Felger Luis Felger ist offline Rookie
    Registriert seit
    Dec 2011
    Ort
    A, A
    Beiträge
    7
    Hallo,
    ich habe ein kleines Problem mit Java. Ich habe einen Downloader entwickelt, der das Spiel mit den aktuellsten Jars versogen soll.
    Leider hatte ich zu erst folgendes Problem:
    Beim Downloaden einer .zip-Datei (in der die aktuellen Jar-Paks enthalten sind) wurde immer falsch gedownloadet. Die MD5-Summen unterschieden sich und die Zip konnte nicht geöffnet werden.

    Dann habe ich zum Checken der Summe eine log-Datei erstellt mit dem Programm md5sums.
    Dieses Programm lieferte mir die Summe, die ich dan in die log gespeichert habe. (Mehr Mals kontrolliert, dass keine Tippfehler drin sind!)
    Dann hab' ich diese auch noch zu meiner Downloader-Klasse hinzugefügt. Jetzt downloaded das Programm mir die falsche .zip-Datei + eine log-Datei, in der der Inhalt der .zip-Datei auch drin ist. Ich verstehe es nicht mehr.

    Hier der Code:

    init.java
    Code :
    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
    
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package launcher;
     
    import java.io.IOException;
    import output.write;
     
    /**
     *
     * @author Luis
     */
    public class init {
        private downloader dw;
        private downloader dw2;
        private String     file = "update_1.zip";
        private write      writer;
        private write      writer2;
        
        public init(int version) throws IOException {
            dw  = new downloader("http://www.bspaddr.de/bsp/src/update/update_"+ version +".zip");
            writer = new write(file, dw.getText());
            
            dw2 = new downloader("http://www.bspaddr.de/bsp/src/update/log");
            writer2 = new write("log", dw2.getText());
            System.out.print(dw.getText());
        }
    }

    write.java
    Code :
    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
    
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package output;
     
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    /**
     *
     * @author Luis
     */
    public class write {
        private static FileOutputStream fos;
        
        public write(String filename, String ressource) throws FileNotFoundException, IOException
        {
            fos = new FileOutputStream(filename);
            
            for(int i = 0; i < ressource.length(); i++) {
                fos.write((byte)ressource.charAt(i));
            }
            
            fos.close();
        }
    }

    downloader.java
    Code :
    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
    45
    46
    47
    
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package launcher;
     
    import java.io.BufferedInputStream;
    import java.io.DataInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.MalformedURLException;
    import java.net.URL;
     
    /**
     *
     * @author Luis
     */
    public class downloader {
        private static URL             u;
        private static InputStream     is = null;
        private static DataInputStream dis;
        private static String          s;
        private static String          data = "";
        
        public downloader(String internetURL) throws IOException {
            try {
                u = new URL(internetURL);
                is = u.openStream();
                dis = new DataInputStream(new BufferedInputStream(is));
                
                while((s = dis.readLine()) != null) {
                    data += s;
                }
            } catch(MalformedURLException mue) {
                data = mue.toString();
            } finally {
                try {
                    is.close();
                } catch(IOException ioe) {
                }
            }
        }
        
        public String getText() {
            return data;
        }
    }

    Wie manche warscheinlich schon vermutet haben: Ich benutze Netbeans.

    Mein Verzeichnisbaum: (gamelib.jar)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    | launcher
    | |
    | |--donwloader.java
    | |
    | |--init.java
    |
    | output
    | |
    | |--write.java

    Das ganze wird folgendermaßen ausgeführt:

    Code :
    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
    
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package update.test;
     
    import java.io.IOException;
    import launcher.init;
     
    /**
     *
     * @author Luis
     */
    public class UpdateTest {
        private static init in;
        
        public UpdateTest() throws IOException {
            in = new init(1);
        }
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws IOException {
            // TODO code application logic here
            new UpdateTest();
        }
    }
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Probier doch mal den URLClassLoader ( http://grepcode.com/file/repository....URLClassLoader ), der sollte eigentlich genau das tun was du willst.
    Problem an deinem Code sollte der Aufruf von readLine() sein, da du die Daten damit am Zeilentrenner (line separator) auftrennst, aber beim zusammenfügen keinen Zeilentrenner hinzufügst. Btw: Klassennamen schreibt man groß.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  3. #3
    Luis Felger Luis Felger ist offline Rookie
    Registriert seit
    Dec 2011
    Ort
    A, A
    Beiträge
    7
    Danke, dass wars.
     

Ähnliche Themen

  1. flv downloaden
    Von schmitti81 im Forum Smalltalk
    Antworten: 1
    Letzter Beitrag: 16.06.09, 13:08
  2. [VB.net] Per FTP Downloaden
    Von Kogios im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 07.05.07, 15:32
  3. downloaden!
    Von Dönerman im Forum PHP
    Antworten: 12
    Letzter Beitrag: 19.09.05, 16:13
  4. php downloaden ?
    Von server im Forum PHP
    Antworten: 5
    Letzter Beitrag: 05.08.05, 15:58
  5. php downloaden
    Von King Euro im Forum PHP
    Antworten: 9
    Letzter Beitrag: 07.04.04, 17:38