从服务器下载图片保存到本地磁盘中

在做OCR时,我们会从服务器下载验证码图片,可以通过把验证码图片下载到本地保存起来使用。

以下是下载图片的实现:

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 Test {
	public static final String URL_PATH = "http://member.0256.cn/Include/ASPX/CheckCode.aspx?rnd=0.7748341448605061"; // 实例图片,实际开发中可能是获得服务器上的所有图片,或者部分图片,不可能是具体某一张图片

	// 把从服务器获得图片的输入流InputStream写到本地磁盘
	public static void saveImageToDisk() {
		InputStream inputStream = getInputStream();
		byte[] data = new byte[1024];
		int len = 0;
		FileOutputStream fileOutputStream = null;
		try {
			fileOutputStream = new FileOutputStream("F:\\checkCode.jpg");
			while ((len = inputStream.read(data)) != -1) {
				fileOutputStream.write(data, 0, len);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (inputStream != null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if (fileOutputStream != null) {
				try {
					fileOutputStream.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}

	// 从服务器获得一个输入流(本例是指从服务器获得一个image输入流)
	public static InputStream getInputStream() {
		InputStream inputStream = null;
		HttpURLConnection httpURLConnection = null;
		try {
			URL url = new URL(URL_PATH);
			httpURLConnection = (HttpURLConnection) url.openConnection();
			// 设置网络连接超时时间
			httpURLConnection.setConnectTimeout(3000);
			// 设置应用程序要从网络连接读取数据
			httpURLConnection.setDoInput(true);
			httpURLConnection.setRequestMethod("GET");
			int responseCode = httpURLConnection.getResponseCode();
			if (responseCode == 200) {
				// 从服务器返回一个输入流
				inputStream = httpURLConnection.getInputStream();
				System.out.println(inputStream + "**********************");
			}
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return inputStream;
	}

	public static void main(String args[]) {
		// 从服务器端获得图片,保存到本地
		saveImageToDisk();
//		File file = new File(
//				"C://Program Files//Apache Software Foundation//Tomcat 6.0//webapps//plpwmanagers//DpImg//"); // 得到服务器上DpImg文件下所有图片
//		String test[];
//		test = file.list(); // 将每张图片依次存放到 test 数组中
//
//		System.out.println(test.length);
//		for (int i = 0; i < test.length; i++) {
//			System.out.println(test[i]);
//		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章