"Hei, Amigo!"
"Hei, Ellie!"
"Du virker veldig fornøyd med deg selv i dag."
"Heh, Bilaabo ble syk."
"Så han kunne ikke forklare en haug med interessante, nyttige og nødvendige ting for deg. Det er på tide å ta på deg store robotbuksene."
"Uh-he. Jeg lover å finne ut av alt selv. Bilaabo ga meg en link."
"Ok, bra. Da skal jeg fortelle deg noe interessant."
"Nemlig hvordan du laster ned videoer fra Internett."
"For å jobbe med Internett har Java en spesiell klasse kalt URL. Slik bruker du denne klassen til å laste ned en fil:"
1) Først må du spesifisere riktig URL til serveren du trenger.
2) Deretter må du bruke URL-en for å etablere en forbindelse med serveren.
3) Send deretter brødteksten til forespørselen hvis det er en POST-forespørsel. Eller du kan hoppe over dette trinnet hvis det er en GET-forespørsel.
4) Les til slutt serversvaret.
"Slik ser en enkel filnedlasting ut:"
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());
"Først etablerer vi en forbindelse med serveren ved å få et URLConnection- objekt."
"Så får vi OutputStream som forespørselen må skrives til. Og vi skriver noe til den."
"Deretter får vi InputStream-objektet som representerer responsen, som vi leser selve responsen fra. Vi bruker Files.copy-metoden for å lagre de sendte dataene til filen «c:/google.png»."
"Ja, jeg forstår. Hva er «skriv(1)»?"
"Vel, jeg tok med det for å vise deg at du kan skrive noe der. Du trenger faktisk ikke å skrive noe i forespørselen for å laste ned filen. Du kan bare umiddelbart få en InputStream og begynne å lese svaret derfra. URL-objektet har til og med en openStream()-metode som umiddelbart returnerer et InputStream-objekt. Men dette er bare egnet for GET-forespørsler. For eksempel:"
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());
"Så interessant! Jeg trodde ikke det var så enkelt å laste ned en fil."
"Vel, ingen vanligvis gjør det slik, siden filer kan være store og ta veldig lang tid å laste ned."
"Det er ganske mange rammeverk som i stor grad forenkler arbeidet med filer, men jeg er ikke klar til å snakke om dem nå. En annen gang."
GO TO FULL VERSION