i**********e 发帖数: 14 | 1 就是抓图片,但是第一种方法work,第二种不work
求问原因,多谢!
第一种:
public static void main(String arg[]) throws IOException {
ProcessBuilder pb = new ProcessBuilder(
"curl",
"-s",
"http://static.tumblr.com/cszmzik/RUTlyrplz/the-simpsons-season-22-episode-13-the-blue-and-the-gray.jpg ");
pb.directory(new File("/home/your_user_name/Pictures"));
pb.redirectErrorStream(true);
Process p = pb.start();
InputStream is = p.getInputStream();
FileOutputStream outputStream = new FileOutputStream(
"/home/your_user_name/Pictures/simpson_download.jpg");
String line;
BufferedInputStream bis = new BufferedInputStream(is);
byte[] bytes = new byte[100];
int numberByteReaded;
while ((numberByteReaded = bis.read(bytes, 0, 100)) != -1) {
outputStream.write(bytes, 0, numberByteReaded);
Arrays.fill(bytes, (byte) 0);
}
outputStream.flush();
outputStream.close();
第二种:
String fullPath = "/home/your_user_name/Pictures/simpson_download.
jpg";
File f = new File(fullPath);
String cmdStr = String.format("curl "http://static.tumblr.com/cszmzik/RUTlyrplz/the-simpsons-season-22-episode-13-the-blue-and-the-gray.jpg" > %s", fullPath);
System.out.println(cmdStr);
Process proc = Runtime.getRuntime().exec(cmdStr);
proc.waitFor();
int status = proc.exitValue();
if (status != 0) {
return;
}
| w**z 发帖数: 8232 | 2 为嘛curl? 直接上Java URL
【在 i**********e 的大作中提到】 : 就是抓图片,但是第一种方法work,第二种不work : 求问原因,多谢! : 第一种: : public static void main(String arg[]) throws IOException { : ProcessBuilder pb = new ProcessBuilder( : "curl", : "-s", : "http://static.tumblr.com/cszmzik/RUTlyrplz/the-simpsons-season-22-episode-13-the-blue-and-the-gray.jpg "); : pb.directory(new File("/home/your_user_name/Pictures")); : pb.redirectErrorStream(true);
| a***n 发帖数: 623 | 3 这用法太奇怪了,万一系统没装curl呢?万一是windows os呢-.- | i**********e 发帖数: 14 | 4 这个不是重点
重点是为什么第一种做法work而第二种不work
完成抓图片这个任务本身不是我感兴趣的
【在 w**z 的大作中提到】 : 为嘛curl? 直接上Java URL
| w**z 发帖数: 8232 | 5 你这问题太笼统了,debug 看哪里出错。
【在 i**********e 的大作中提到】 : 这个不是重点 : 重点是为什么第一种做法work而第二种不work : 完成抓图片这个任务本身不是我感兴趣的
| x*******1 发帖数: 28835 | 6 curl needs absolute path like /usr/bin/curl |
|