Jak określić rozmiar sciąganego pliku ?

0

Witam
Mam taki kod :

import java.net.*;
import java.io.*;

public class URLConnectionReader {
    public static void main(String[] args) throws Exception {
        URL yahoo = new URL("http://www.yahoo.com/");
        URLConnection yc = yahoo.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yc.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null) 
            System.out.println(inputLine);
        in.close();
    }
}

No i wszystko fajnie ale jak określić rozmiar ściaganego pliku html ? Tak żeby progress pokazać ?

EDIT: Podobne jego wartość można znaleźć w nagłówkach, a jak te nagłówki pobrać ? I która to wartość?

0

Nagłówek nazywa się Content-length i zawiera wiadomość o całkowitym rozmiarze pliku. Reszta np. to jak pobrać nagłówki patrz dokumentacja

0

No właśnie patrzyłem w dokumentacje i coś mi się nie zgadzało, a to dlatego że pisałem taką funkcje w C# hehe [rotfl] i dlatego nie mogłem dojść co i jak bo i jak ;-P :|

A może przykładzik bo w dokumentację patrzyłem, ale coś nie bardzo, ehh coraz bardziej zniechęcam się do Javy na rzecz C#. :>

EDIT: no ok znalazłem coś:

import java.net.*;
import java.io.*;

public class URLConnectionReader {
    public static void main(String[] args) throws Exception {
        URL yahoo = new URL("http://www.yahoo.com/");
        URLConnection yc = yahoo.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yc.getInputStream()));
        String inputLine;

int roz = yc..getContentLength();

        while ((inputLine = in.readLine()) != null) 
            System.out.println(inputLine);
        in.close();
    }
}

int roz = urlConection.getContentLength(); //tylko co to za liczba ? Bajtów bitówm ? i iole zabiera za 1 readLine() ? Ehh... google [glowa]

0

długość Contentu podaje się w bajtach. 1 readLine() to jednostka umowna i zależy od wewnętrznej organizacji pliku. Funkcja wraca strumień do momentu az nie trafi na znak końca linii. Głupie to ale skuteczne

0

Hmm spróbowałem, tak że
zapisałem w StringBuffer to co pobrało, sam kod, i StringBuffer.lenght(); nie jest tożsamy z liczbą zwracaną przez URLConection.getContentLength(), choć bardzo zbliżony, dodałem 10% do długośći content i jako tako pokazuje mi odpowiedni progres w % hehe ale jak ktoś potrzebóje prawdziwej dokładnośći to musi dalej główkować, mi takie szacunkowe dane starczą :P, dzieki Koziołek za pomoc ;]

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