1. 程式人生 > >Android 檔案下載儲存讀取

Android 檔案下載儲存讀取

                對於Android的檔案的下載,儲存到本地,讀取本地檔案。

1.環境準備,需要被下載的檔案url,或者自己搭建環境,有tomcat就行。執行tomcat,將需要被下載的檔案放到上面。

     這裡我是放在我自己的伺服器上的一個TXT文件做為例子。

2.下載檔案,下載下來是一個字串,注意需要進行轉碼,否則會產生亂碼。採用的是Android 原生的httpURLconnection 進行讀取。返回檔案的內容。注意網路許可權。

/**
 *@author chenzhu
 *creat at 2017/9/15 10:42
 *@param baseUrl 檔案的網路地址
*@return 檔案字串 * @include saveFile() 儲存檔案 * **/ public String getFileByUrl(String baseUrl) { try { URL url = new URL(baseUrl); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); urlConn.setDoInput(true); //設定輸入流採用位元組流 urlConn.setDoOutput(true);
//設定輸出流採用位元組流 urlConn.setRequestMethod("POST"); urlConn.setUseCaches(false); //設定快取 urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); urlConn.setRequestProperty("Charset", "utf-8"); urlConn.connect(); DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream());
dos.writeBytes("tqpadmac=" + URLEncoder.encode("B407F9D67C80", "utf-8")); dos.writeBytes("tqpadver=" + URLEncoder.encode("1", "utf-8")); dos.flush(); dos.close(); //這句:new InputStreamReader(urlConn.getInputStream(), "gbk") 設定編碼 BufferedReader br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "gbk")); String line = ""; String result = ""; while (null != (line = br.readLine())) { result += line; } Log.d("chenzhu","chenzhu--->get data byurl接到的資料: " + result);br.close(); urlConn.disconnect(); return result; } catch (Exception e1) { e1.printStackTrace(); } return ""; }

3 .如果需要將內容儲存的話就採用入選方法,注意檔案讀寫許可權。

   將2中獲取到的檔案內容做為引數傳遞過來,就可使實現儲存了,不過需要注意的是

 儲存的路徑沒有選取預設記憶體路徑,而是將其存到APP的下面,因為有些機子不支援在預設路徑下存。

/**
 *@author chenzhu
 *creat at 2017/9/15 10:44
 *@param  file  需要儲存的檔案內容
 *@return
*
 **/
private void saveFile(String file ) {
      try{
          ByteArrayInputStream inputStream = new ByteArrayInputStream(file.getBytes());
FileOutputStream outputStream = new FileOutputStream("/data/data/"+getPackageName()+"/files/FaultCodeList.txt");
Log.d("chenzhu","chenzhu--->save data"+Environment.getExternalStorageDirectory());
          int len = -1;
          while((len = inputStream.read())!=-1){
              outputStream.write(len);
}
          outputStream.flush();
outputStream.close();
}catch (Exception e){
          e.printStackTrace();
Log.d("chenzhu","chenzhu--->save data"+e);
}
     }

4.從本地將存入的檔案讀取出來。

private String readFile(String filename) {
    String reads = "";
    try {
        File file = new File(filename);
FileInputStream    fis = new FileInputStream(file);
        byte[] b = new byte[1024];
ByteArrayOutputStream baos = new ByteArrayOutputStream();
        while (fis.read(b) != -1) {
            baos.write(b, 0, b.length);
}
        fis.close();
baos.flush();
baos.close();
reads = baos.toString();
Log.d("chenzhu","chenzhu--->read file"+reads);
} catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
Log.d("chenzhu","chenzhu--->read file FileNotFoundException"+e);
e.printStackTrace();
} catch (IOException e) {
        // TODO Auto-generated catch block
e.printStackTrace();
Log.d("chenzhu","chenzhu--->read file IOException"+e);
}
    return reads;
}

好了 以上三個方法基本能滿足普通的檔案操作了,歡迎交流和指教。需要注意的是一點要關閉和清空管道。

相關推薦

Android 檔案下載儲存讀取

                對於Android的檔案的下載,儲存到本地,讀取本地檔案。 1.環境準備,需要被下載的檔案url,或者自己搭建環境,有tomcat就行。執行tomcat,將需要被下載的

android 檔案下載儲存

        這個demo演示從網上下載檔案並儲存到手機,demo中可以下載一個XML檔案並在Console視窗輸出,還可以下載一個MP3檔案並儲存到手機儲存目錄中的BoBoMusic資料夾中,下載

android檔案寫入和讀取

//讀寫檔案函式呼叫writeFileData(filename,datas); String result=readFileData(filename); Toast.makeText(Main2Activity.this,result.getClass().toString(),Toast.LENG

Android 檔案下載引擎,穩定、高效、簡單易用:FileDownloader(結合okhttp)

Android 檔案下載引擎,穩定、高效、簡單易用 特點  簡單易用  高併發  獨立程序  自動斷點續傳  需要注意  為了絕大多數使用效能考慮,目前下載引擎目前受限於int可表示的範圍,而我們的回撥total與so far以byte為單位回撥,因此最大隻能表示到2^31-1=2_147_483_647 =

android檔案下載!download!

在開始程式碼之前先看一下工程的架構: Download.java中放入的是程式的主體,util包中放入的是一些公用的方法,其中FileUtils.java放入的是對檔案的一些基本操作,HttpDownloader.java中是對下載的一些基本操作。 第一步:先來看看主程

一行程式碼實現android檔案下載

起源 本文主要介紹開源專案Aria的使用。 Aria專案源於15年工作中遇到的一個檔案下載管理的需求,當時被下載折磨的痛不欲生,從那時起便萌生了編寫一個簡單易用,穩當高效的下載框架,aria經歷了1.0到3.0的開發,算是越來越接近當初所制定的目標了。 以

FileDownloader-Android 檔案下載引擎,穩定、高效、簡單易用

final FileDownloadListener queueTarget = new FileDownloadListener() { @Override protected void pending(BaseDownloadTask task, int soFarBytes, int

Android檔案下載進度條的實現

package com.pocketdigi.download;    import java.io.FileOutputStream;    import java.io.IOException;    import java.io.InputStream;    import java.net.URL; 

Android 檔案下載(斷點、多工並行下載

以下程式碼是基於百度雲網盤:http://pan.baidu.com/s/1dD1Xo8T 中的demo進行優化及功能新增。 以下程式碼實現功能有:多執行緒下載、多工並行下載以及下載進度和下載速度的顯示等功能。 實現思路:根據執行緒數分割待下載檔案;利用Ht

Android檔案下載含伺服器端和登入系列的伺服器端原始碼

由於這兩個系列我沒單獨建立伺服器端,使用一個工程,將打包後的檔案上傳至csdn, 2 iOS斷點續傳  使用iOS 原NSURLConnection類封裝,並提供progress回撥方法,自動獲

Android檔案下載(實現斷點續傳)

http://www.ideasandroid.com/archives/328#more-328 本文將介紹在android平臺下如何實現多執行緒下載,大家都知道,android平臺使用java做為開發語言,所以java中支援的多執行緒下載方式在android平臺下都支援,

android檔案下載器(輕量級)——EasyFileDownload

EasyFileDownloader 一個用於android中的輕量級檔案下載器,特別適合應用內升級下載APK。 A lightweight for use in the android file downloader Download the APK is

android檔案下載下載連結中包含特殊字元--空格,中文等,導致無法識別處理方案

今天在app測試時出現標題所示錯誤,導致無法正常重server端下載檔案; 通過檢視日誌,瞭解到是由於下載連結中出現空格、中文等特殊字元,導致連線地址不合法; 在網上也查看了很多描述相關問題解決方案的帖子,很有啟發-- 但是考慮到方便自己和大家,還是把問題和解決方案貼出來

java 中 excel生成並檔案下載儲存到本地

servlet類 package com.dragon.action; import Java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException

Android之內部儲存讀取資料

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     androi

Android 檔案 資料儲存

## 概覽 Android支援的資料儲存方式: 1. Sp儲存 在鍵值對中儲存私有的原始資料 2. 檔案儲存 2.1 內部檔案儲存 在裝置檔案系統中儲存應用私有檔案 2

Android與與伺服器交換資料、上傳、下載讀取檔案

一些變數的定義: //需要將下面的IP改為伺服器端IP private String txtUrl = "http://192.168.1.46:8080/AppServer/SynTxtDataServlet"; private String url = "http://192.

android 將資料儲存檔案中&從檔案讀取資料

1.將資料儲存到檔案中,我直接貼程式碼了,基本註釋都在程式碼中,原諒我很懶。 /** * 將資料存到檔案中 * * @param context context

Android採用SharedPreferences方式進行檔案儲存讀取

工程目錄: 做軟體開發應該都知道,很多軟體會有配置檔案,裡面存放這程式運行當中的各個屬性值,由於其配置資訊並不多,如果採用資料庫來存放並不划算,因為資料庫連線跟操作等耗時大大影響了程式的效率,因此我們使用鍵值這種一一對應的關係來存放這些配置資訊。SharedPrefe

Android AsyncHttpClient 下載檔案 Content-Type not allowed! 錯誤

專案開發更新版本時候下載apk使用AsyncHttpClient 及BinaryHttpResponseHandler來處理 但總是報errororg.apache.http.client.HttpResponseException: Content-Type not allowed! 錯誤