java 從經過網址獲取-圖片-html代碼

獲取圖片代碼
package com.yanjun;

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

public class ImageRequest {

   /**
    * 經過HTTP協議請求網絡圖片 圖片網址:
    * http://pic7.nipic.com/20100526/3355499_161646077541_2.jpg
    *    
    * @param args
    */

   public static void main(String[] args) throws Exception {
     // 從網絡上獲取圖片--URL對象用來封裝路徑
    URL url = new URL(
         "http://pic7.nipic.com/20100526/3355499_161646077541_2.jpg");
    // 打開路徑連接---獲得HttpURLConnection對象
    HttpURLConnection httpURLConnection = (HttpURLConnection) url
        .openConnection();
    // 經過HTTP協議請求網絡圖片---設置請求方式:get/post
    httpURLConnection.setRequestMethod("GET");
    // 設置鏈接超時
    httpURLConnection.setConnectTimeout(5000);
    // 從外界想手機應用內傳遞數據----經過輸入流獲取圖片數據
    InputStream inputStream = httpURLConnection.getInputStream();
    // 從輸入流中獲取圖片的二進制數據----readInputStream()
    byte[] data = readInputStream(inputStream);
    // 將數據保存到應用文件的根目錄下,文件名爲系統時間
    File inageFile = new File(System.currentTimeMillis() + ".jpg");
    //經過文件輸出流將二進制數據寫到文件中去
    FileOutputStream fileOutputStream = new FileOutputStream(inageFile);
    //經過write()寫進文件中去
    fileOutputStream.write(data);
    fileOutputStream.close();
  }

  // 讀取輸入流的方法
  public static byte[] readInputStream(InputStream inSream) throws Exception {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    // 定義一個緩衝區
    byte[] buffer = new byte[1024];
    int len = 0;
    // 不斷的從流裏讀取數據---while循環---nSream.read(buffer)表示從流裏讀取數據到緩衝區
    // 讀取到末尾時,返回值是-1;
    while ((len = inSream.read(buffer)) != -1) {
      // 將緩衝區的數據寫到輸出流中
      byteArrayOutputStream.write(buffer, 0, len);
    }
    inSream.close();
    return byteArrayOutputStream.toByteArray();
  }

}
 
HTML代碼
package com.yanjun;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class ImageRequest {

   /**
    * 經過HTTP協議請求獲取網頁數據:
    * http://www.baidu.com/
    *    
    * @param args
    */

   public static void main(String[] args) throws Exception {
     // 從網絡上獲取html-URL對象用來封裝路徑
    URL url = new URL( "http://www.baidu.com/");
    // 打開路徑連接---獲得HttpURLConnection對象
    HttpURLConnection httpURLConnection = (HttpURLConnection) url
        .openConnection();
    // 經過HTTP協議請求網絡html---設置請求方式:get/post
    httpURLConnection.setRequestMethod("GET");
    // 設置鏈接超時
    httpURLConnection.setConnectTimeout(5000);
    // 從外界想手機應用內傳遞數據----經過輸入流獲取html數據
    InputStream inputStream = httpURLConnection.getInputStream();
    // 從輸入流中獲取html的二進制數據----readInputStream()
    byte[] data = readInputStream(inputStream);
    //將HTML代碼的二進制轉換成string類型
    String html = new String(data);
    //將數據打印在控制檯上
    System.out.println(html);
    inputStream.close();
  }

  // 讀取輸入流的方法
  public static byte[] readInputStream(InputStream inSream) throws Exception {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    // 定義一個緩衝區
    byte[] buffer = new byte[1024];
    int len = 0;
    // 不斷的從流裏讀取數據---while循環---nSream.read(buffer)表示從流裏讀取數據到緩衝區
    // 讀取到末尾時,返回值是-1;
    while ((len = inSream.read(buffer)) != -1) {
      // 將緩衝區的數據寫到輸出流中
      byteArrayOutputStream.write(buffer, 0, len);
    }
    inSream.close();
    return byteArrayOutputStream.toByteArray();   } }
相關文章
相關標籤/搜索