码迷,mamicode.com
首页 > 其他好文 > 详细

SaveManager+DownloadManager(下载img,voice以及保存)

时间:2016-04-22 12:03:43      阅读:366      评论:0      收藏:0      [点我收藏+]

标签:

package com.k1.doctor.media;

import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.UUID;

import com.k1.doctor.media.DownloadManager.CompleteLintening;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

public class SaveManager {
    public final static String ROOT_PATH = "data/data/com.k1.doctor/files";

    public static void saveBitmap(final Context content, final byte[] b, final String id) {
        final String name = UUID.randomUUID().toString();
        new Thread(new Runnable() {
            public void run() {

                BufferedOutputStream stream = null;
                // File rootfile = content.getFilesDir();
                File imageFolder = new File(ROOT_PATH, "image/");
                if (!imageFolder.exists()) {
                    imageFolder.mkdir();
                }
                File file = null;
                if (id != null) {
                    file = new File(imageFolder + "/" + id + ".jpg");
                } else {
                    file = new File(imageFolder + "/" + name + ".jpg");
                }

                FileOutputStream fstream = null;
                try {
                    fstream = new FileOutputStream(file);
                    stream = new BufferedOutputStream(fstream);
                    stream.write(b);
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {

                    e.printStackTrace();
                } finally {
                    try {
                        if (stream != null) {
                            stream.close();
                            fstream.close();
                        }

                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                }
            }
        }).start();

    }
//byte[] 转文件
    public static void saveVoice(final Context content, final byte[] b, final String id) {
        final String name = UUID.randomUUID().toString();

        new Thread(new Runnable() {
            public void run() {

                BufferedOutputStream stream = null;

                // File rootfile = content.getFilesDir();
                File imageFolder = new File(ROOT_PATH, "voice/");
                if (!imageFolder.exists()) {
                    imageFolder.mkdir();
                }
                File file;
                if (id != null) {
                    file = new File(imageFolder + "/" + id + ".amr");
                } else {
                    file = new File(imageFolder + "/" + name + ".amr");
                }

                FileOutputStream fstream = null;
                try {
                    fstream = new FileOutputStream(file);
                    stream = new BufferedOutputStream(fstream);
                    stream.write(b);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {

                    e.printStackTrace();
                } finally {
                    try {
                        if (stream != null) {
                            stream.close();
                            fstream.close();
                        }

                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                }
            }
        }).start();

    }
//文件转byte[]
    public static byte[] getBytes(File file) {
        byte[] buffer = null;
        try {
            FileInputStream fis = new FileInputStream(file);
            ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
            byte[] b = new byte[1000];
            int n;
            while ((n = fis.read(b)) != -1) {
                bos.write(b, 0, n);
            }
            fis.close();
            bos.close();
            buffer = bos.toByteArray();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return buffer;
    }

    public static String getImage(String path, String name, CompleteLintening l) {
        File imageFolder = new File(ROOT_PATH, "image/");
        if (!imageFolder.exists()) {
            imageFolder.mkdir();
        }
        File file = new File(imageFolder + "/" + name + ".jpg");
        if (file.length() == 0) {
            file.delete();
            DownloadManager.startLoad(path, "image", l);
            return null;
        } else {
            return file.getAbsolutePath();
        }
    }

    public static String getVoice(String path, String name, CompleteLintening l) {
        File imageFolder = new File(ROOT_PATH, "voice/");
        if (!imageFolder.exists()) {
            imageFolder.mkdir();
        }
        File file = new File(imageFolder + "/" + name + ".amr");
        if (file.length() == 0) {
            file.delete();
            DownloadManager.startLoad(path, "voice", l);
            return null;
        } else {
            return file.getAbsolutePath();
        }

    }
}

package com.k1.doctor.media;

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

import android.os.Environment;

public class DownloadManager {

    public interface CompleteLintening {
        void completed(Object o);

    }

    private String Url = "";

    public static void startLoad(final String path, final String flag, final CompleteLintening l) {
        new Thread(new Runnable() {

            @Override
            public void run() {
                try {
                    if (flag.equals("image")) {
                        byte[] b = load(path);
                        SaveManager.saveBitmap(null, b,"imager");
                        l.completed(b);
                    } else if (flag.equals("voice")) {
                        loadVoice(path);
                        // l.completed(b);
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        }).start();
    }

    public static void loadVoice(String path) throws Exception {
        URL url = new URL(path);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(5 * 1000);
        conn.setRequestMethod("GET");
        InputStream inStream = conn.getInputStream();
        if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {

        }

    }

    public void streamToBytes(InputStream inStream, String flag) {

        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] data = new byte[5 * 1024];
        int count = -1;
        try {
            while ((count = inStream.read(data, 0, 5 * 1024)) != -1)
                outStream.write(data, 0, count);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        data = null;
        if(flag.equals("voice")){
            SaveManager.saveVoice(null, outStream.toByteArray(),"");
        }else if(flag.equals("image")){
            SaveManager.saveBitmap(null, outStream.toByteArray(),null);
        }
        
    }

    public static byte[] load(String path) throws Exception {
        URL url = new URL(path);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(5 * 1000);
        conn.setRequestMethod("GET");
        InputStream inStream = conn.getInputStream();
        if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
            return readStream(inStream);
        }
        return null;
    }

    public static byte[] readStream(InputStream inStream) throws Exception {
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        while ((len = inStream.read(buffer)) != -1) {
            outStream.write(buffer, 0, len);
        }
        outStream.close();
        inStream.close();
        return outStream.toByteArray();
    }

    public Object getDate(String id) {
        return Url;

    }


}

 

 

 

SaveManager+DownloadManager(下载img,voice以及保存)

标签:

原文地址:http://www.cnblogs.com/g-sheng/p/5420627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!