"Hallo Amigo!"

"Hallo, Ellie!"

'Je lijkt erg tevreden met jezelf vandaag.'

"Heh, Bilaabo werd ziek."

'Dus hij kon je een heleboel interessante, nuttige en noodzakelijke dingen niet uitleggen. Het is tijd om je grote robotbroek aan te trekken.'

'Uh-huh. Ik beloof dat ik het allemaal zelf zal uitzoeken. Bilaabo heeft me een link gegeven.'

"Oké, goed. Dan zal ik je iets interessants vertellen."

"Namelijk, hoe video's van internet te downloaden."

"Om met internet te werken, heeft Java een speciale klasse genaamd URL. U kunt deze klasse als volgt gebruiken om een ​​bestand te downloaden:"

1) Eerst moet u de juiste URL opgeven van de server die u nodig hebt.

2) Vervolgens moet u de URL gebruiken om een ​​verbinding met de server tot stand te brengen.

3) Stuur vervolgens de hoofdtekst van het verzoek als het een POST-verzoek is. Of u kunt deze stap overslaan als het een GET-verzoek is.

4) Lees tot slot het antwoord van de server.

"Zo ziet een eenvoudige bestandsdownload eruit:"

Voorbeeld
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());

"Eerst brengen we een verbinding tot stand met de server door een URLConnection- object op te halen."

"Dan krijgen we de OutputStream waarnaar het verzoek moet worden geschreven. En we schrijven er iets naar toe."

"Dan krijgen we het InputStream-object dat het antwoord vertegenwoordigt, waaruit we het antwoord zelf lezen. We gebruiken de Files.copy-methode om de verzonden gegevens op te slaan in het bestand «c:/google.png»."

"Ja, ik begrijp het. Wat is «write(1)»?"

"Nou, ik heb dat toegevoegd om je te laten zien dat je daar iets kunt schrijven. Je hoeft eigenlijk niets in het verzoek te schrijven om het bestand te downloaden. Je kunt gewoon meteen een InputStream krijgen en vanaf daar beginnen met het lezen van het antwoord. Het URL-object heeft zelfs een methode openStream() die onmiddellijk een InputStream-object retourneert. Maar deze is alleen geschikt voor GET-verzoeken. Bijvoorbeeld:"

Voorbeeld
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());

"Wat interessant! Ik had niet gedacht dat het downloaden van een bestand zo eenvoudig was."

"Nou, meestal doet niemand het op deze manier, aangezien bestanden groot kunnen zijn en het erg lang duurt om ze te downloaden."

"Er zijn nogal wat frameworks die het werken met bestanden enorm vereenvoudigen, maar daar wil ik het nu niet over hebben. Een andere keer."