"Cześć, Amigo!"

"Cześć, Ellie!"

– Wydajesz się być dzisiaj z siebie bardzo zadowolony.

„Hej, Bilaabo zachorował”.

„Więc nie mógł ci wyjaśnić wielu interesujących, przydatnych i potrzebnych rzeczy. Czas założyć spodnie wielkiego robota”.

„Uh-huh. Obiecuję, że sam to wszystko rozgryzę. Bilaabo dał mi link”.

- Dobrze, dobrze. W takim razie opowiem ci coś ciekawego.

„Mianowicie, jak pobierać filmy z Internetu”.

„Aby pracować z Internetem, Java ma specjalną klasę o nazwie URL. Oto jak użyć tej klasy do pobrania pliku:”

1) Najpierw musisz podać poprawny adres URL serwera, którego potrzebujesz.

2) Następnie musisz użyć adresu URL, aby nawiązać połączenie z serwerem.

3) Następnie wyślij treść żądania, jeśli jest to żądanie POST. Możesz też pominąć ten krok, jeśli jest to żądanie GET.

4) Na koniec przeczytaj odpowiedź serwera.

„Tak wygląda proste pobieranie pliku:”

Przykład
URL url = new URL("https://www.google.com.ua/images/srpr/logo11w.png");
URLConnection connection = url.openConnection(); // Establish a connection

// Get an OutputStream in order to write the request to it
OutputStream outputStream = connection.getOutputStream();
outputStream.write(1);
outputStream.flush();

// Get an InputStream in order to read the response from it
InputStream inputStream = connection.getInputStream();
Files.copy(inputStream, new File("c:/google.png").toPath());

„Najpierw nawiązujemy połączenie z serwerem, pobierając obiekt URLConnection ”.

„Następnie otrzymujemy OutputStream, do którego należy zapisać żądanie. I coś do niego piszemy”.

„Następnie otrzymujemy reprezentujący odpowiedź obiekt InputStream, z którego odczytujemy samą odpowiedź. Wykorzystujemy metodę Files.copy do zapisania przesłanych danych do pliku «c:/google.png».”

„Tak, rozumiem. Co to jest «write(1)»?”

„Cóż, dodałem to, aby pokazać, że możesz tam coś napisać. W rzeczywistości nie musisz pisać niczego w żądaniu, aby pobrać plik. Możesz po prostu natychmiast uzyskać InputStream i stamtąd zacząć czytać odpowiedź. Obiekt URL ma nawet metodę openStream(), która natychmiast zwraca obiekt InputStream. Jest to jednak odpowiednie tylko dla żądań GET. Na przykład:

Przykład
URL url = new URL("https://www.google.com.ua/images/srpr/logo11w.png");
InputStream inputStream = url.openStream();
Files.copy(inputStream, new File("c:/google.png").toPath());

„Jakie to interesujące! Nie sądziłem, że pobieranie pliku jest takie łatwe”.

„Cóż, nikt zwykle nie robi tego w ten sposób, ponieważ pliki mogą być duże i ich pobieranie może zająć bardzo dużo czasu”.

„Istnieje całkiem sporo frameworków, które znacznie upraszczają pracę z plikami, ale nie jestem gotów teraz o nich mówić. Kiedy indziej”.