java批量下图

这个代码没什么太大用途,权当复习一下java,里面的例外也处理。作用就是能下载http://www.style.com/fashionshows/complete/slideshow/F2014MEN-AMCQUEEN/这个相册里的30张图。

package fatch;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

/**
 *
 * @author 42
 */
public class Fatch {

    /**
     * 本程序获取http://www.style.com/fashionshows/complete/slideshow/F2014MEN-AMCQUEEN/相册中的30张图片
     * 通过查看图片属性发现其文件名有简单规律,虽不连续但是是有顺序的
     * first,last是网址的前半部分和后半部分
     * 先判断文件是否存在,然后将文件下载到本地
     */
    public static void main(String[] args) throws MalformedURLException, IOException {
        String imagesource="";
        String first="http://www.style.com/fashion-shows/fall-2014-menswear/london/alexander-mcqueen/collection/_ARC0";
        String last=".1366x2048.JPG";
        
        InputStream inputStream;  
        byte[] getData = null;
        for(int i=1,x=0;x<30&&i<=500;i++){
            if(i<10){
                imagesource=first+"00"+i+last;
            }else if((i>=10)&&(i<100)){
                imagesource=first+"0"+i+last;
            }else if((i>=100)&&(i<1000)){
                imagesource=first+i+last;
            }
        URL url = new URL(imagesource);  
        HttpURLConnection conn = (HttpURLConnection)url.openConnection();  
        try {
            inputStream = conn.getInputStream();      //通过输入流获得图片数据
            getData = readInputStream(inputStream);     //获得图片的二进制数据  
        } catch (IOException ex) {
            getData=null;
        }
        
        if(getData!=null){
        File imageFile = new File(i+".JPG");    
        FileOutputStream fos = new FileOutputStream(imageFile);
        fos.write(getData);             
        fos.close();  
          
        System.out.println(x+"picture(s) downloaded"); 
        x++;
        }
        }
        
    }  
  
    public static  byte[] readInputStream(InputStream inputStream) throws IOException {  
        byte[] buffer = new byte[1024];  
        int len = 0;  
        ByteArrayOutputStream bos = new ByteArrayOutputStream();  
        while((len = inputStream.read(buffer)) != -1) {  
            bos.write(buffer, 0, len);  
        }  
          
        bos.close();  
        return bos.toByteArray();
    }
}

Java调用Windows默认浏览器打开网页

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

/**
 * 小批量打开默认浏览器访问页面,没什么实用性
 * @author 42
 */
public class Web1 {

    public static void main(String[] args) throws IOException, InterruptedException {
        for(int i=90;i<100;i++){
            String cmd = "rundll32 url.dll,FileProtocolHandler http://jane7.com/articles/"+i+"/like";
	Runtime.getRuntime().exec(cmd);
        Thread.sleep(1000);
        }
    }
}

Ubuntu安装SunJava

大致就是先去官网下载jdk包,我解压到了/usr/local。

sudo tar zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local

然后

sudo vim /etc/environment

添加或修改如下粗体内容(vim用gedit也行):

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/1.7.0_25/bin"
CLASS_PATH="/usr/local/jdk1.8.0_121/lib"
JAVA_HOME="/usr/local/jdk1.8.0_121"

接着

sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_121/bin/java 300

如果你只安装了一个java,那么到此就结束了。如果你还装的有OpenJDK或别的版本,那么执行最后一布,选一下默认JDK:

sudo update-alternatives --config java

选择刚安装java的前面的数字就安装好了。

参考文章:http://my.oschina.net/sunshinedabby/blog/113193

最后再附下windows下jdk的环境变量配置:

  • 新建
    JAVA_HOME=D:\Program Files\Java\jdk1.7.0_01
  • 修改
    CLASSPATH=.;%JAVA_HOME%\lib;
  • 修改
    Path=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;