pobieranie pliku, pomysł na obliczanie postępu

0

Witam.
Na początek dam trochę kodu:

void download_patch(String fileAddress, String localFileName) {
        OutputStream os = null; URLConnection URLConn = null; InputStream is = null;
        try {
            URL fileUrl = new URL(fileAddress);
            byte[] buf = new byte[1024]; int ByteRead;
            os = new BufferedOutputStream(new FileOutputStream(localFileName));
            URLConn = fileUrl.openConnection();
            is = URLConn.getInputStream();
            while ((ByteRead = is.read(buf)) != -1) {os.write(buf,0,ByteRead);}
        }catch (Exception e) {
        }finally {try {
            is.close();
            os.close();
        } catch (IOException e) {}}
    }

Jak widać, metoda służy do pobrania oraz zapisania pliku z sieci.

Pytanie: macie jakiś pomysł na obliczanie postępu pobierania? Myślałem o rozwiązaniu typu: co pętlę while ((ByteRead = is.read(buf)) != -1) {os.write(buf,0,ByteRead);} doliczać wartość ByteRead do jakiejś stworzonej zmiennej i porównywać z całkowitą wagą pobieranego pliku, jednak nie wiem i mam problem ze znalezieniem informacji odnośnie tego, jak sprawdzić rozmiar pobieranego pliku (już na etapie samego startu pobierania).

0
                try {
			URL url = new URL("http://ads.stackoverflow.com/ads/1/1_hw_so_banner_0609.gif");
			URLConnection connection = url.openConnection();
			System.out.println(connection.getContentLength());
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

Pomocne linki:
[1] http://www.rgagnon.com/javadetails/java-0298.html
[2] http://stackoverflow.com/questions/263013/java-urlconnection-how-could-i-find-out-a-files-size

0

Bez jaj - URLConnection.getContentLength().

0

... dobra, dzięki... nie było tematu :|

1 użytkowników online, w tym zalogowanych: 0, gości: 1