當前位置:
首頁 >
Android中的多种文件读写操作方法
發布時間:2024/1/23
36
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Android中的多种文件读写操作方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
添加權限:
<!-- 往SDCard寫入數據權限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 在SDCard中創建與刪除文件權限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> package com.ppmeet;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream;import org.apache.http.util.EncodingUtils;import android.content.Context;/*** class name:FileService<BR>* class description:android文件的一些讀取操作<BR>* PS: <BR>* * @version 1.00 2010/10/21* @author CODYY)peijiangping*/ public class FileService {private Context context;public FileService(Context c) {this.context = c;}// 讀取sd中的文件public String readSDCardFile(String path) throws IOException {File file = new File(path);FileInputStream fis = new FileInputStream(file);String result = streamRead(fis);return result;}// 在res目錄下建立一個raw資源文件夾,這里的文件只能讀不能寫入。。。public String readRawFile(int fileId) throws IOException {// 取得輸入流InputStream is = context.getResources().openRawResource(fileId);String result = streamRead(is);// 返回一個字符串return result;}private String streamRead(InputStream is) throws IOException {int buffersize = is.available();// 取得輸入流的字節長度byte buffer[] = new byte[buffersize];is.read(buffer);// 將數據讀入數組is.close();// 讀取完畢后要關閉流。String result = EncodingUtils.getString(buffer, "UTF-8");// 設置取得的數據編碼,防止亂碼return result;}// 在assets文件夾下的文件,同樣是只能讀取不能寫入public String readAssetsFile(String filename) throws IOException {// 取得輸入流InputStream is = context.getResources().getAssets().open(filename);String result = streamRead(is);// 返回一個字符串return result;}// 往sd卡中寫入文件public void writeSDCardFile(String path, byte[] buffer) throws IOException {File file = new File(path);FileOutputStream fos = new FileOutputStream(file);fos.write(buffer);// 寫入buffer數組。如果想寫入一些簡單的字符,可以將String.getBytes()再寫入文件;fos.close();}// 將文件寫入應用的data/data的files目錄下public void writeDateFile(String fileName, byte[] buffer) throws Exception {byte[] buf = fileName.getBytes("iso8859-1");fileName = new String(buf, "utf-8");// Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到原文件中。可以使用Context.MODE_APPEND// Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。// Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有權限讀寫該文件。// MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取;MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。// 如果希望文件被其他應用讀和寫,可以傳入:// openFileOutput("output.txt", Context.MODE_WORLD_READABLE +// Context.MODE_WORLD_WRITEABLE);FileOutputStream fos = context.openFileOutput(fileName,Context.MODE_APPEND);// 添加在文件后面fos.write(buffer);fos.close();}// 讀取應用的data/data的files目錄下文件數據public String readDateFile(String fileName) throws Exception {FileInputStream fis = context.openFileInput(fileName);String result = streamRead(fis);// 返回一個字符串return result;} }?
?
總結
以上是生活随笔為你收集整理的Android中的多种文件读写操作方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 中使用MediaReco
- 下一篇: ActivityGroup 实现分页和自