# Warum geht das nicht?



## heribert (1. Jan 2006)

Hi, habe ein Applet gecodet, dass sich von einer Webseite eine Datei laden und dann auf der Festplattespeichern soll.
das Applet ist auch signiert usw, aber es funktioniert trotzdem nicht, und ich verstehe nicht, warum.
Wär toll, wenn mir einer von euch weiterhelfen könnte:


```
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;

public class HalloApplet extends Applet implements ActionListener
{

   private Button b1;
   private Label mess;

   public void init() {
    setLayout (new FlowLayout() );
    b1 = new Button("B1");
    b1.addActionListener (this);
    add(b1);
    mess = new Label("-");
    add(mess);
    setVisible(true);
   }

   public void actionPerformed (ActionEvent e) {
    String s = e.getActionCommand();
    if (s.equals("B1")) {
      mess.setText("Der Download wurde gestartet.");
      int b;
      BufferedInputStream in;
      URL url;
      try {
        url = new URL( "http://www.google.de/logos/newyear06.gif" );
        in = new BufferedInputStream ( url.openStream() );
        while( (b = in.read()) != -1 ) {
        try {
          BufferedOutputStream out = new BufferedOutputStream (
            new FileOutputStream ("C:\newyear06.gif") );
          out.write(b);
          out.flush();
          out.close();
        } catch (Exception i) {
            System.out.println("error " + i);
        }
        }
        in.close();
      } catch (Exception u) {
        System.out.println("error " + u);
      }
    }
    this.validate();
  }  
}
```


----------



## PoiSoN (1. Jan 2006)

Hallo,
hab jetzt nix ausprobiert, aber versuch mal ("C:*\\*newyear06.gif") statt ("C:*\*newyear06.gif"),
oder benutze der Plattformunabhängigkeit wegen File.Seperator...


----------



## André Uhres (2. Jan 2006)

Du machst in der while Schleife immer wieder nen neuen OutpoutStream. Zum Schluss haste nur das letzte int!

```
File file = new File("newyear06.gif");
            try {
                url = new URL( "http://www.google.de/logos/newyear06.gif" );
                in = new BufferedInputStream( url.openStream() );
                BufferedOutputStream  out = new BufferedOutputStream(
                        new FileOutputStream(file) );
                while( (b = in.read()) != -1 ) {
                    try {
                        out.write(b);
                    } catch (Exception i) {
                        System.out.println("error " + i);
                    }
                }
                in.close();
                out.flush();
                out.close();
                
                System.out.println(file.getAbsolutePath());
```


----------



## heribert (2. Jan 2006)

juhu, danke, beides zusammen hat mir weitergeholfen ^^
dass mit der while schleife ist mir nen bisschen peinlich 
bin halt noch nen anfänger...


----------



## heribert (3. Jan 2006)

oje, ich hoffe ihr könnt mir nochmal helfen!
ich hab jetzt mindestens schon 3 stunden versucht, in das Programm mit einem Thread eine JProgressBar einzubinden, aber das beste was ich geschafft hab, war eine ProgressBar die sofort voll war und das ging auch nur ohne Button...
Ich bin am verzweifeln, ich hoffe, ihr könnt mir nochmal helfen und mir zeigen, wie man das machen kann...


----------



## André Uhres (3. Jan 2006)

http://www.java-forum.org/de/viewtopic.php?t=8101


----------



## heribert (3. Jan 2006)

den thread kenn ich doch bereits!
wenn cih sage, dass ich das 3 stunden versucht habe, dann habe ich das auch ^^
ich versteh auch selbst nicht, warum es nicht klappt, aber irgendwas ging immernicht!!
trotzdem danke für die antwort


----------



## André Uhres (3. Jan 2006)

Wie wär's mit nem KSKB ?


----------



## heribert (3. Jan 2006)

wow, das vollbringt wahre wunder *g*
danke


----------

