Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [java] scaricare file dal web

    sto cercando di creare un metodo che permette di scaricare un file dal web, ma i file scaricati nn sono completi o cmq nn funzionano.
    Qualcuno sa darmi qualche dritta?
    questo è il metodo da me fatto:

    codice:
    
    public boolean dwnFileFromWeb (String NameFile) throws MalformedURLException, IOException{
    		//mi collefo al file remoto
    		URL url = new URL(NameFile);
       		DataInputStream is = new DataInputStream(url.openStream());
       		//creo il file locale
    		File file = new File("temp_update");
     	        FileOutputStream fos = new FileOutputStream(file);
       		//prelevo la dimensione del file
      	        long fileSize=0;
                    while (is.read()>=0){		
       			fileSize++;
       		}
    		//
       		is.close();
    
    		System.out.println(fileSize + " byte to download");
    		
       		DataInputStream inStream = new DataInputStream(url.openStream());
       		BufferedInputStream bis=new BufferedInputStream(inStream);
       
       		byte inBuf[];
      		while (fileSize>0){
       			if(fileSize>=1024){
       				inBuf= new byte[1024];
    			}
    			else{
       				inBuf = new byte[(int)fileSize];
    			}
       			int bytesRead = bis.read(inBuf);
       			fos.write(inBuf);
       			fileSize=fileSize-1024;
       		}
       		
    		//chiudo lo stream
    		inStream.close(); 
    		fos.close();
    		
    		return true;
          	}
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    160
    se ti può servire ho fatto questo, è molto intuitivo:

    codice:
    public class FileDownload {
    	public static boolean download(URL fileToDownload, File location){
    		try {
    			URLConnection connection = fileToDownload.openConnection();
    			InputStream is = connection.getInputStream();
    			OutputStream os = new FileOutputStream(location);;
    			long start=new Date().getTime();
    			long nbytes=copy(is,os);
    			long finish=new Date().getTime();
    			System.out.println("Download completato: "+location.getAbsolutePath());
    			System.out.println(nbytes+" bytes in "+((finish-start)/1000)+" seconds");
    			return true;
    		} catch (IOException e) {
    			System.err.println("Download fallito: "+location.getAbsolutePath());
    			e.printStackTrace();
    			return false;
    		}
    	}
    
    	public static long copy(InputStream in, OutputStream out) throws IOException{
    		long bytesCopied = 0;
    		byte[] buffer = new byte[4096];
    		int bytes;
    		try{
    			while ( (bytes = in.read( buffer )) != -1 ){
    				out.write( buffer, 0, bytes );
    				bytesCopied += bytes;
    			}
    		}finally{
    			in.close();
    			out.close();
    		}
    		 
    		return bytesCopied;
    	}
    }

  3. #3

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.