Warum geht das nicht?

Status
Nicht offen für weitere Antworten.

heribert

Mitglied
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:

Code:
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();
  }  
}
 
Hallo,
hab jetzt nix ausprobiert, aber versuch mal ("C:\\newyear06.gif") statt ("C:\newyear06.gif"),
oder benutze der Plattformunabhängigkeit wegen File.Seperator...
 
Du machst in der while Schleife immer wieder nen neuen OutpoutStream. Zum Schluss haste nur das letzte int!
Code:
           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());
 
juhu, danke, beides zusammen hat mir weitergeholfen ^^
dass mit der while schleife ist mir nen bisschen peinlich 😀
bin halt noch nen anfänger...
 
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...
 
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
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben