1.SD卡操作类FileUtils.java

package com.example.mars_1500_download;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import android.os.Environment;public class FileUtils {    private String SDPATH;    public String getSDPATH() {        return SDPATH;    }    public FileUtils() {        //得到当前外部存储设备的目录        // /SDCARD        SDPATH = Environment.getExternalStorageDirectory() + "/";    }    /**     * 在SD卡上创建文件     *      * @throws IOException     */    public File creatSDFile(String fileName) throws IOException {        File file = new File(SDPATH + fileName);        file.createNewFile();        return file;    }        /**     * 在SD卡上创建目录     *      * @param dirName     */    public File creatSDDir(String dirName) {        File dir = new File(SDPATH + dirName);        dir.mkdirs();        return dir;    }    /**     * 判断SD卡上的文件夹是否存在     */    public boolean isFileExist(String fileName){        File file = new File(SDPATH + fileName);        return file.exists();    }        /**     * 将一个InputStream里面的数据写入到SD卡中     */    public File write2SDFromInput(String path,String fileName,InputStream input){        File file = null;        OutputStream output = null;        try{            creatSDDir(path);            file = creatSDFile(path + fileName);            output = new FileOutputStream(file);            byte buffer [] = new byte[4 * 1024];            while((input.read(buffer)) != -1){                output.write(buffer);            }            output.flush();        }        catch(Exception e){            e.printStackTrace();        }        finally{            try{                output.close();            }            catch(Exception e){                e.printStackTrace();            }        }        return file;    }}

2.下载类HttpDownloader

package com.example.mars_1500_download;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;public class HttpDownloader {    private URL url = null;    /**     * 根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容 1.创建一个URL对象     * 2.通过URL对象,创建一个HttpURLConnection对象 3.得到InputStram 4.从InputStream当中读取数据     *      * @param urlStr     * @return     */    public String download(String urlStr) {        StringBuffer sb = new StringBuffer();        String line = null;        BufferedReader buffer = null;        try {            // 创建一个URL对象            url = new URL(urlStr);            // 创建一个Http连接            HttpURLConnection urlConn = (HttpURLConnection) url                    .openConnection();            // 使用IO流读取数据            buffer = new BufferedReader(new InputStreamReader(                    urlConn.getInputStream()));            while ((line = buffer.readLine()) != null) {                sb.append(line);            }        } catch (Exception e) {            System.out.println("download:" + e.getMessage());            e.printStackTrace();        } finally {            try {                buffer.close();            } catch (Exception e) {                System.out.println("download buffer.close():" + e.getMessage());                e.printStackTrace();            }        }        return sb.toString();    }    /**     * 该函数返回整形 -1:代表下载文件出错 0:代表下载文件成功 1:代表文件已经存在     */    public int downFile(String urlStr, String path, String fileName) {        InputStream inputStream = null;        try {            FileUtils fileUtils = new FileUtils();            if (fileUtils.isFileExist(path + fileName)) {                return 1;            } else {                inputStream = getInputStreamFromUrl(urlStr);                File resultFile = fileUtils.write2SDFromInput(path, fileName,                        inputStream);                if (resultFile == null) {                    return -1;                }            }        } catch (Exception e) {            System.out.println("downFile:" + e.getMessage());            e.printStackTrace();            return -1;        } finally {            try {                inputStream.close();            } catch (Exception e) {                System.out.println("downFile close:" + e.getMessage());                e.printStackTrace();            }        }        return 0;    }    /**     * 根据URL得到输入流     *      * @param urlStr     * @return     * @throws MalformedURLException     * @throws IOException     */    public InputStream getInputStreamFromUrl(String urlStr)            throws MalformedURLException, IOException {        url = new URL(urlStr);        HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();        InputStream inputStream = urlConn.getInputStream();        return inputStream;    }}

3.下载文件Activity

package com.example.mars_1500_download;import android.support.v7.app.ActionBarActivity;import android.support.v7.app.ActionBar;import android.support.v4.app.Fragment;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;import android.os.Build;public class MainActivity extends Activity {    private Button downloadTxtButton;    private Button downloadMp3Button;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        downloadTxtButton=(Button)findViewById(R.id.downloadTxtButton);        downloadMp3Button=(Button)findViewById(R.id.downloadMp3Button);        downloadTxtButton.setOnClickListener(new DownloadTxtListener());        downloadMp3Button.setOnClickListener(new DownloadMp3Listener());                /*if (savedInstanceState == null) {            getSupportFragmentManager().beginTransaction()                    .add(R.id.container, new PlaceholderFragment()).commit();        }*/    }    class DownloadTxtListener implements OnClickListener    {        @Override        public void onClick(View v) {            System.out.println("txt");            HttpDownloader httpDownloader=new HttpDownloader();            String lrc=httpDownloader.download("http://www.cnblogs.com/zhuawang/p/3648551.html");            System.out.println(lrc);        }    }        class DownloadMp3Listener implements OnClickListener    {        @Override        public void onClick(View v) {            HttpDownloader httpDownloader=new HttpDownloader();            int ret=httpDownloader.downFile("http://www.cnblogs.com/zhuawang/p/3648551.html","voa/","a.html");            System.out.println(ret);        }    }        @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }    /**     * A placeholder fragment containing a simple view.     */    public static class PlaceholderFragment extends Fragment {        public PlaceholderFragment() {        }        @Override        public View onCreateView(LayoutInflater inflater, ViewGroup container,                Bundle savedInstanceState) {            View rootView = inflater.inflate(R.layout.fragment_main, container,                    false);            return rootView;        }    }}

4.设置权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mars_1500_download"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.mars_1500_download.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>


<!-- 访问网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡访问权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>

6.进linux系统查看文件

adb shell ls -l

cd sdcard

更多相关文章

  1. Unity同步加载Android里的StreamingAssets里的文件
  2. android webview 下载文件
  3. AndroidManifest.xml文件详解(activity)(一)
  4. Android 实现windows文件资源管理器
  5. 重命名sd卡中的文件名

随机推荐

  1. 电脑本地换IP用派克斯如何实现
  2. 面试题:预训练方法 BERT和OpenAI GPT有什
  3. cp网站源码安装步骤详情
  4. ORA-29770: global enqueue process LMS
  5. Github最火!程序员必须知道22大定律和法则
  6. python常用的图像处理工具有哪些?工具推
  7. Ryft Cloud迁移到AWS EC2 F1实例上来了!
  8. 频谱分析仪中的 Spartan-6 FPGA
  9. Xilinx FPGA在基因组测序中大显身手!
  10. 五巨头联合打造高可靠性IIOT方案