一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Android開發(fā)中常用的工具類整理

 天海544 2015-03-23
package net.wujingchao.android.utility
import android.content.Context;
import android.os.Environment;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.File; 
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream; 
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.UUID;
import com.mixiaofan.App;
public class DownloadUtil {
     private static final int TIME_OUT = 30*1000; //超時(shí)時(shí)間
     private static final String CHARSET = "utf-8"//設(shè)置編碼
     private DownloadUtil() {
        throw new UnsupportedOperationException("DownloadUtil cannot be instantiated");
     }
    /**
     * @param file  上傳文件
     * @param RequestURL 上傳文件URL
     * @return 服務(wù)器返回的信息,如果出錯(cuò)則返回為null
     */
     public static String uploadFile(File file,String RequestURL) {
         String BOUNDARY = UUID.randomUUID().toString(); //邊界標(biāo)識(shí) 隨機(jī)生成 String PREFIX = "--" , LINE_END = "\r\n";
         String PREFIX = "--" , LINE_END = "\r\n";
         String CONTENT_TYPE = "multipart/form-data"//內(nèi)容類型
         try {
             URL url = new URL(RequestURL);
             HttpURLConnection conn = (HttpURLConnection) url.openConnection();
             conn.setReadTimeout(TIME_OUT);
             conn.setConnectTimeout(TIME_OUT);
             conn.setDoInput(true); //允許輸入流
             conn.setDoOutput(true); //允許輸出流
             conn.setUseCaches(false); //不允許使用緩存 
             conn.setRequestMethod("POST"); //請(qǐng)求方式 
             conn.setRequestProperty("Charset", CHARSET);
             conn.setRequestProperty("Cookie""PHPSESSID=" + App.getSessionId());
             //設(shè)置編碼 
             conn.setRequestProperty("connection""keep-alive"); 
             conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY);
             if(file!=null) { 
                     /** * 當(dāng)文件不為空,把文件包裝并且上傳 */
                     OutputStream outputSteam=conn.getOutputStream();
                     DataOutputStream dos = new DataOutputStream(outputSteam);
                     StringBuffer sb = new StringBuffer();
                     sb.append(PREFIX);
                     sb.append(BOUNDARY); sb.append(LINE_END);
                     /**
                     * 這里重點(diǎn)注意:
                     * name里面的值為服務(wù)器端需要key 只有這個(gè)key 才可以得到對(duì)應(yīng)的文件
                     * filename是文件的名字,包含后綴名的 比如:abc.png
                     */
                     sb.append("Content-Disposition: form-data; name=\"img\"; filename=\""+file.getName()+"\""+LINE_END);
                     sb.append("Content-Type: application/octet-stream; charset="+CHARSET+LINE_END);
                     sb.append(LINE_END);
                     dos.write(sb.toString().getBytes());
                     InputStream is = new FileInputStream(file);
                     byte[] bytes = new byte[1024];
                     int len;
                     while((len=is.read(bytes))!=-1)
                     {
                        dos.write(bytes, 0, len);
                     }
                     is.close();
                     dos.write(LINE_END.getBytes());
                     byte[] end_data = (PREFIX+BOUNDARY+PREFIX+LINE_END).getBytes();
                     dos.write(end_data);
                     dos.flush();
                     /**
                     * 獲取響應(yīng)碼 200=成功
                     * 當(dāng)響應(yīng)成功,獲取響應(yīng)的流
                     */
                     ByteArrayOutputStream bos = new ByteArrayOutputStream();
                     InputStream resultStream = conn.getInputStream();
                     len = -1;
                     byte [] buffer = new byte[1024*8];
                     while((len = resultStream.read(buffer)) != -1) {
                         bos.write(buffer,0,len);
                     }
                     resultStream.close();
                     bos.flush();
                     bos.close();
                     String info = new String(bos.toByteArray());
                     int res = conn.getResponseCode();
                     if(res==200){
                        return info;
                     }else {
                         return null;
                     }
                }
               catch (MalformedURLException e) {
                    e.printStackTrace();
               catch (ProtocolException e) {
                    e.printStackTrace();
               catch (FileNotFoundException e) {
                    e.printStackTrace();
               catch (IOException e) {
                     e.printStackTrace();
               }
         return null;
     }
     public static byte[] download(String urlStr) {
            HttpURLConnection conn = null;
            InputStream is = null;
            byte[] result = null;
            ByteArrayOutputStream bos = null;
            try {
                URL url = new URL(urlStr);
                conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");
                conn.setConnectTimeout(TIME_OUT);
                conn.setReadTimeout(TIME_OUT);
                conn.setDoInput(true);
                conn.setUseCaches(false);//不使用緩存
                if(conn.getResponseCode() == 200) {
                    is = conn.getInputStream();
                    byte [] buffer = new byte[1024*8];
                    int len;
                    bos = new ByteArrayOutputStream();
                    while((len = is.read(buffer)) != -1) {
                        bos.write(buffer,0,len);
                    }
                    bos.flush();
                    result = bos.toByteArray();
                }
            catch (MalformedURLException e) {
                e.printStackTrace();
            catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if(bos != null){
                        bos.close();
                    }
                    if (is != null) {
                        is.close();
                    }
                    if (conn != null)conn.disconnect();
                catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    /**
     * 獲取緩存文件
     */
     public static File getDiskCacheFile(Context context,String filename,boolean isExternal) {
        if(isExternal && (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))) {
            return new File(context.getExternalCacheDir(),filename);
        }else {
            return new File(context.getCacheDir(),filename);
        }
    }
    /**
     * 獲取緩存文件目錄
     */
     public static File getDiskCacheDirectory(Context context) {
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            return context.getExternalCacheDir();
        }else {
            return context.getCacheDir();
        }
    }
 }

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    a久久天堂国产毛片精品| 中文字幕在线区中文色| 99久久精品一区二区国产| 欧美美女视频在线免费看| 国产毛片对白精品看片| 日韩一级一片内射视频4k| 色综合久久中文综合网| 91人妻人人澡人人人人精品| 欧美熟妇一区二区在线| 欧美日韩视频中文字幕| 国产内射在线激情一区| 国产又黄又爽又粗视频在线| 国产精品久久男人的天堂| 成年人免费看国产视频| 国产一级内片内射免费看| 麻豆精品视频一二三区| 国产偷拍盗摄一区二区| 高清欧美大片免费在线观看| 欧美做爰猛烈叫床大尺度| 国语对白刺激高潮在线视频| 中国黄色色片色哟哟哟哟哟哟| 日韩日韩欧美国产精品| 国产又色又爽又黄又免费| 亚洲欧美国产网爆精品| 日韩免费午夜福利视频| 色鬼综合久久鬼色88| 日韩精品一区二区毛片| 亚洲最大的中文字幕在线视频 | 在线观看免费视频你懂的| 四季精品人妻av一区二区三区| 国产成人高清精品尤物| 欧美综合色婷婷欧美激情| 亚洲精品中文字幕无限乱码| 国产免费成人激情视频| 亚洲熟女诱惑一区二区| 欧美一级特黄大片做受大屁股| 国产精品久久精品国产| 日韩一区二区三区在线日| 中文字幕日韩一区二区不卡| 太香蕉久久国产精品视频| 国产精品伦一区二区三区在线|