javaですいません、つまづいたので質問させてください。
今、指定した画像のURLからダウンロードして、ファイルに保存する処理を
行いたいのですが、取得するファイルのサイズがゼロで、うまく画像をゲットできません。
どこがまずいでしょうか?
以下がコードです。
コード:
package test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HelloWorld {
public static void main(String[] argv) {
System.out.println("Hello World");
SayHello();
step1();
System.out.println("step1 END");
}
public static void SayHello()
{
System.out.println("Hello");
}
public static void step1()
{
URL url = null;
HttpURLConnection urlConnection = null;
try {
url = new URL("https://anime-pictures.net/pictures/get_image/430567-800x800-shingeki+no+kyojin-production+i.g-mikasa+ackerman-wail-single-short+hair.jpg");
urlConnection = (HttpURLConnection)url.openConnection();
// trueならリダイレクトを認める
urlConnection.setInstanceFollowRedirects(true);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
InputStream in = null;
try {
in = urlConnection.getInputStream();
}
catch( IOException e) {
e.printStackTrace();
}
byte[] buf = new byte[4096];
int readSize;
int total = 0;
try {
FileOutputStream fos = new FileOutputStream("C:\\download\\test.jpg");
while( ( (readSize = in.read(buf) ) == -1 ) )
{
total = total + readSize;
fos.write(buf,0,readSize);
}
fos.flush();
fos.close();
in.close();
}
catch( FileNotFoundException e ) {
System.out.println("ファイルエラー" );
}catch(IOException e ) {
e.printStackTrace();
}
System.out.println("Size:" + total );
}
}