Daten laden - progress

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo 🙂

Ich möchte in meinem Programm (bzw tue es) eine Datei aus dem Internet laden und lokal auf der Festplatte speichern. Naturgemäß dauert es ja, Dateien aus dem inet zu laden - in Folge dessen möchte ich einen Fortschrittsbalken während des Ladevorgangs anzeigen.
Den FAQ-Beitrag (http://www.java-forum.org/de/viewtopic.php?t=8101) habe ich gelesen, auch die Suche habe ich bemüht und dennoch leider nichts direkt anwendbares gefunden (auch die API mit dem ProgressMonitor ist mir da nicht ganz klar 🙁 )
Mir ist selbstverständlich bekannt das Probleme gemeinsam gelöst werden sollte - nur hab ich scheinbar keinerlei Idee wie ich den Teil abwandeln muss damit ich eine Progressbar habe.

Code:
import java.io.*; 
import java.net.*; 

public class FileCopy 
{ 
  public void http( String urlSrc, String fileDest ) 
  { 
    try 
    { 
      URL url = new URL( urlSrc ); 
      copy( url.openStream() , new FileOutputStream( fileDest ) ); 
    } 
    catch( IOException e ) { 
      System.err.println( e ); 
    } 
  } 
  public void file( String src, String dest ) 
  { 
    try 
    { 
      copy( new FileInputStream( src ), new FileOutputStream( dest ) ); 
    } 
    catch( IOException e ) { 
      System.err.println( e ); 
    } 
  } 
  private void copy( InputStream fis, OutputStream fos ) 
  { 
    try 
    { 
      byte  buffer[] = new byte[0xffff]; 
      int   nbytes; 

      while ( (nbytes = fis.read(buffer)) != -1) 
        fos.write( buffer, 0, nbytes ); 
    } 
    catch( IOException e ) { 
      System.err.println( e ); 
    } 
    finally { 
      if ( fis != null ) 
        try { 
          fis.close(); 
        } catch ( IOException e ) {} 

      try { 
        if ( fos != null ) 
          fos.close(); 
      } catch ( IOException e ) {} 
    } 
  }

Anmerkung: Es gibt im momentanen Status keinerlei GUI - von daher schwebt mir ein Dialog vor, der sich vor eine später entstehende GUI schiebt.
 
Anonymous hat gesagt.:
...dennoch leider nichts direkt anwendbares gefunden ...

Etwas, was du in deinen Code einfach nur einfügt und dann läuft wirste wohl auch net finden.

Woran haberts denn? ProgressBar darstellen? Progressbar laufen lassen (nicht von 0 auf 100)? Eine Möglichkeit herauszufinden wie lange dein Programm noch benötigt? ...
 
Hobbit_Im_Blutrausch hat gesagt.:
Anonymous hat gesagt.:
...dennoch leider nichts direkt anwendbares gefunden ...

Etwas, was du in deinen Code einfach nur einfügt und dann läuft wirste wohl auch net finden.

Woran haberts denn? ProgressBar darstellen? Progressbar laufen lassen (nicht von 0 auf 100)? Eine Möglichkeit herauszufinden wie lange dein Programm noch benötigt? ...

eine gute Frage...
also eine Progressbar erstelle ich ja wie folgt:

Code:
                jProgressBar1 = new JProgressBar();
	this.getContentPane().add(jProgressBar1);
                jProgressBar1.setBounds(445, 11, 60, 30);

Daran sollte es also nicht scheitern.
Wenn man so will ist dann 2. und 3. das problem, auch der Link von Bleiglanz führt mich da leider nicht zum Erfolg:

Code:
public ProgressMonitorInputStream(Component parentComponent,
                                  Object message,
                                  InputStream in)

--> copy( new ProgressMonitorInputStream(null,
	  "Reading ",
	url.openStream()) , new FileOutputStream( fileDest ) ); ??

Wie gesagt, mir ist das ganze System scheinbar nicht verständlich
 
ich weis ja nicht ob du dir sowas vorgestellt hast aber kuck dir doch mal die methode setIndeterminate(boolean b) von JProgressBar a[/code]
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben