「こんにちは、アミーゴ!」

「こんにちは、エリー!」

「あなたは今日の自分にとても満足しているようですね。」

「へー、ビラーボが病気になったんだ」

「つまり、彼はあなたに興味深く、有益で、必要なことの多くを説明できませんでした。大きなロボットのズボンを履く時期が来ました。」

「うーん。すべて自分で解決すると約束します。ビラーボがリンクをくれました。」

「分かった、分かった。それなら面白いことを教えてあげるよ。」

「つまり、インターネットからビデオをダウンロードする方法です。」

「インターネットを操作するために、Java には URL と呼ばれる特別なクラスがあります。このクラスを使用してファイルをダウンロードする方法は次のとおりです。」

1) まず、必要なサーバーの正しい URL を指定する必要があります。

2) 次に、URL を使用してサーバーとの接続を確立する必要があります。

3) 次に、POST リクエストの場合はリクエストの本文を送信します。または、GET リクエストの場合は、この手順をスキップできます。

4) 最後に、サーバーの応答を読み取ります。

「簡単なファイルのダウンロードは次のようになります。」

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 メソッドを使用して、送信されたデータをファイル «c:/google.png» に保存します。」

「はい、わかりました。«write(1)»って何ですか?」

「そうですね、そこに何かを書き込めることを示すためにこれを含めました。実際には、ファイルをダウンロードするためにリクエストに何も書き込む必要はありません。すぐに InputStream を取得して、そこから応答の読み取りを開始することができます。 URL オブジェクトには、InputStream オブジェクトを即座に返す openStream() メソッドもあります。ただし、これは 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());

「面白いですね。ファイルのダウンロードがこんなに簡単だとは思いませんでした。」

「そうですね、ファイルは大きくてダウンロードに非常に時間がかかる場合があるので、通常はこのようにする人はいません。」

「ファイルの操作を大幅に簡素化するフレームワークは数多くありますが、今はそれについて話す準備ができていません。またの機会に。」