在做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]); // } } }