gregorioarthur 8 de jul. de 2011
private void download () throws Exception {
brProgresso . setIndeterminate ( true );
inStatus . setText ( "Fazendo Download" );
btDownload . setEnabled ( false );
SwingWorker sw = new SwingWorker () {
@Override
protected Object doInBackground () throws Exception {
int buffer = 8 * 1024 ;
URL from = new URL ( parameters . get ( "files" ));
BufferedInputStream urlIn = new BufferedInputStream (
from . openConnection (). getInputStream (), buffer );
BufferedOutputStream outFile = new BufferedOutputStream (
new FileOutputStream ( selectLocation ()), buffer );
writeToFile ( urlIn , outFile , buffer );
urlIn . close ();
outFile . close ();
return null ;
}
@Override
protected void done () {
brProgresso . setIndeterminate ( false );
inStatus . setText ( "Terminado." );
btDownload . setEnabled ( true );
}
} ;
sw . execute ();
}
private void writeToFile ( InputStream in , OutputStream out , int buffer )
throws IOException {
int read = - 1 ;
byte [] buf = new byte [ buffer ] ;
while (( read = in . read ( buf , 0 , buffer )) >= 0 ) {
out . write ( buf , 0 , read );
}
out . flush ();
}
Precisei fazer isso uma vez, o código ta meio zoado pq eh uma app antiga q fiz… Mas da um look pra ver se te ajudar…
matheuslmota 8 de jul. de 2011
Tu pode usar o wget:
Runtime . getRuntime () . exec ( "wget -c http://urldoarquivo" );
No windows não existe o wget nativamente, mas você pode baixá-lo e usar para executar a linha de código que eu passei. Você deve compilar a linha em uma classe e colocar o wget.exe no mesmo diretório do compilado da classe.
matheuslmota 8 de jul. de 2011
gregorioarthur:
private void download () throws Exception {
brProgresso . setIndeterminate ( true );
inStatus . setText ( "Fazendo Download" );
btDownload . setEnabled ( false );
SwingWorker sw = new SwingWorker () {
@Override
protected Object doInBackground () throws Exception {
int buffer = 8 * 1024 ;
URL from = new URL ( parameters . get ( "files" ));
BufferedInputStream urlIn = new BufferedInputStream (
from . openConnection (). getInputStream (), buffer );
BufferedOutputStream outFile = new BufferedOutputStream (
new FileOutputStream ( selectLocation ()), buffer );
writeToFile ( urlIn , outFile , buffer );
urlIn . close ();
outFile . close ();
return null ;
}
@Override
protected void done () {
brProgresso . setIndeterminate ( false );
inStatus . setText ( "Terminado." );
btDownload . setEnabled ( true );
}
} ;
sw . execute ();
}
private void writeToFile ( InputStream in , OutputStream out , int buffer )
throws IOException {
int read = - 1 ;
byte [] buf = new byte [ buffer ] ;
while (( read = in . read ( buf , 0 , buffer )) >= 0 ) {
out . write ( buf , 0 , read );
}
out . flush ();
}
Precisei fazer isso uma vez, o código ta meio zoado pq eh uma app antiga q fiz... Mas da um look pra ver se te ajudar...
O que seria esse objetos parameters?
gregorioarthur 8 de jul. de 2011
eh parte do meu aplicativo…
Dei uma filtrada no código pra vc poder usar… segue abaixo:
package download ;
import java.net.URL ;
import java.io.* ;
/**
*
* @author Arthur Gregorio
*
* @since 1.0
* @version 1.0, 08/07/2011
*/
public class Download {
public void getFrom ( String url ) throws IOException {
int buffer = 8 * 1024 ;
URL from = new URL ( url );
BufferedInputStream urlIn = new BufferedInputStream (
from . openConnection (). getInputStream (), buffer );
BufferedOutputStream outFile = new BufferedOutputStream (
new FileOutputStream ( System . getProperty ( "user.home" )), buffer );
writeToFile ( urlIn , outFile , buffer );
urlIn . close ();
outFile . close ();
}
private void writeToFile ( InputStream in , OutputStream out , int buffer )
throws IOException {
int read = - 1 ;
byte [] buf = new byte [ buffer ] ;
while (( read = in . read ( buf , 0 , buffer )) >= 0 ) {
out . write ( buf , 0 , read );
}
out . flush ();
}
}
falow!