– Szia Amigo!
– Szia, Ellie!
– Úgy tűnik, ma nagyon elégedett vagy magaddal.
– Heh, Bilaabo megbetegedett.
– Szóval nem tudott elmagyarázni neked egy csomó érdekes, hasznos és szükséges dolgot. Ideje felvenned a nagyrobot nadrágodat.
– Ööö. Megígérem, hogy magam találom ki az egészet. Bilaabo adott egy linket.
"Rendben, jó. Akkor mondok neked valami érdekeset."
– Nevezetesen, hogyan lehet videókat letölteni az internetről.
"Az internet használatához a Java-nak van egy speciális osztálya, amelyet URL-nek hívnak. Ezzel az osztálylal fájlokat tölthet le:
1) Először is meg kell adnia a szükséges kiszolgáló megfelelő URL-címét.
2) Ezután az URL-t kell használnia a szerverrel való kapcsolat létrehozásához.
3) Ezután küldje el a kérés törzsét, ha az POST kérés. Vagy kihagyhatja ezt a lépést, ha GET-kérésről van szó.
4) Végül olvassa el a szerver válaszát.
"Így néz ki egy egyszerű fájlletöltés:"
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());
"Először is kapcsolatot létesítünk a szerverrel egy URLConnection objektum lekérésével ."
"Ezután megkapjuk az OutputStream-et, amelyre a kérést írni kell. És írunk rá valamit."
"Ezután megkapjuk a választ reprezentáló InputStream objektumot, amelyből magát a választ olvassuk ki. A Files.copy metódussal mentjük az elküldött adatokat a «c:/google.png» fájlba."
"Igen, értem. Mi az, hogy "ír(1)"?"
"Nos, ezt azért tettem bele, hogy megmutassam, írhatsz oda valamit. Valójában semmit nem kell írnod a kérésbe a fájl letöltéséhez. Csak azonnal kaphatsz egy InputStream-et, és onnan elkezdheted olvasni a választ. Az URL objektumnak van még egy openStream() metódusa is, ami azonnal visszaad egy InputStream objektumot. De ez csak GET kérésekre alkalmas. Például:"
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());
"Milyen érdekes! Nem gondoltam volna, hogy ilyen egyszerű a fájl letöltése."
"Nos, ezt általában senki sem csinálja így, mivel a fájlok nagyok lehetnek, és nagyon sokáig tart a letöltés."
"Van néhány keretrendszer, amely nagyban leegyszerűsíti a fájlokkal való munkát, de most nem állok készen arra, hogy beszéljek róluk. Máskor."
GO TO FULL VERSION