„Здрасти, Амиго!“
„Здравей, Ели!“
— Изглеждаш много доволен от себе си днес.
— Хей, Билаабо се разболя.
„Значи не можа да ти обясни куп интересни, полезни и необходими неща. Време е да си обуеш панталоните на големия робот.“
"Ъ-ъ-ъ. Обещавам да разбера всичко сам. Билаабо ми даде връзка."
"Добре, добре. Тогава ще ти кажа нещо интересно."
"А именно, How да изтеглите видеоклипове от интернет."
"За да работи с Интернет, Java има специален клас, наречен URL. Ето How да използвате този клас, за да изтеглите файл:"
1) Първо, трябва да посочите правилния URL address на сървъра, от който се нуждаете.
2) След това трябва да използвате URL address, за да установите връзка със сървъра.
3) След това изпратете тялото на заявката, ако е POST заявка. Или можете да пропуснете тази стъпка, ако е GET заявка.
4) Накрая прочетете отговора на сървъра.
„Ето How изглежда едно просто изтегляне на файл:“
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());
„Първо установяваме връзка със сървъра, като получаваме обект URLConnection .“
„След това получаваме OutputStream, в който трябва да бъде написана заявката. И пишем нещо в него.“
"След това получаваме обекта InputStream, представляващ отговора, от който четем самия отговор. Използваме метода Files.copy, за да запазим изпратените данни във file «c:/google.png»."
„Да, разбирам. Какво е «write(1)»?“
„Е, включих това, за да ви покажа, че можете да напишете нещо там. Всъщност не е нужно да пишете нищо в заявката, за да изтеглите file. Можете просто веднага да получите InputStream и да започнете да четете отговора от там. URL обектът дори има метод openStream(), който незабавно връща обект InputStream. Но това е подходящо само за GET заявки. Например:"
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());
„Колко интересно! Не мислех, че изтеглянето на файл е толкова лесно.“
„Е, обикновено никой не го прави по този начин, тъй като файловете могат да бъдат големи и да отнемат много време за изтегляне.“
"Има доста рамки, които значително опростяват работата с файлове, но не съм готов да говоря за тях сега. Някой друг път."
GO TO FULL VERSION