Итак, я искал как скачивать изображения и не получал очень хорошо написанных объяснений, просто примеры кода. Я не совсем понимаю, некоторые из этого кода, в основном сЗагрузка изображений из reddit с ошибками Java
for (int b; (b = is.read()) != -1;) {
os.write(b);
}
Может кто-нибудь объяснить этот код выше, как я пять лет, а также любые альтернативы этому методу.
EDIT2
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Downloader {
static String path = "C:\\reddit\\";
public static void main(String[] args) {
connect();
}
private static void download(String imageURL, int i) {
InputStream is = null;
OutputStream os = null;
try {
URL url = new URL(imageURL);
is = url.openStream();
os = new FileOutputStream(path + i + ".jpg");
for (int b; (b = is.read()) != -1;) {
os.write(b);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void connect() {
try {
Document doc = Jsoup.connect("http://www.reddit.com/r/pics").get();
Elements url = doc.select("a");
int i = 0;
for (Element img : url) {
if (img.attr("href").startsWith("http://imgur.com/")) {
String image = img.attr("abs:href")+".jpg";
System.out.println(image);
i++;
System.out.println(i);
download(image, i);
}
}
} catch (IOException e) {
System.out.println("page scrape fail");
}
}
}
EDIT я заметил, что мой выход не прав, его написание дубликаты, я просто опубликовать мой консольного результат
http://imgur.com/f7rW2Of
1
http://imgur.com/f7rW2Of
2
http://imgur.com/35jpkez
3
http://imgur.com/35jpkez
4
http://imgur.com/IX9HMJG
5
http://imgur.com/IX9HMJG
6
http://imgur.com/B6MoDbT
7
http://imgur.com/B6MoDbT
8
http://imgur.com/XMtCUY9
9
http://imgur.com/XMtCUY9
10
http://imgur.com/UkbbiBl
11
http://imgur.com/UkbbiBl
12
http://imgur.com/YfLsCal
13
http://imgur.com/YfLsCal
14
http://imgur.com/9Q3CJtT
15
http://imgur.com/9Q3CJtT
16
http://imgur.com/Vt7sWTf
17
http://imgur.com/Vt7sWTf
18
http://imgur.com/hBUH5kS
19
http://imgur.com/hBUH5kS
20
http://imgur.com/gallery/OWQH0h6
21
http://imgur.com/gallery/OWQH0h6
22
http://imgur.com/a/hiJXI
23
http://imgur.com/a/hiJXI
24
Показать фактическую цену. И да, помимо неэффективности чтения одного байта за раз, вы смотрите ОК. –
Вы имеете в виду чтение 1 байт за раз из-за BufferedReader? Я просто удалил это, и я до сих пор не вижу никаких изменений. Каждый файл 29-35kb, ни один из них не может просматривать, даже если я перехожу на jpg. У меня больше нет ошибок, я могу загрузить все 27 изображений с страницы reddit.com/r/pics, просто не могу просмотреть ни одного из них. Можете ли вы eli5 фактической составляющей записи – gallly
Все ли они JPG? –