Android 文件操作之openFileOutput


  openFileOutput()方法的第一參數用於指定文件名稱,不能包含路徑分隔符“/” ,如果文件不存在,Android 會自動創建它。創建的文件保存在/data/data/<package name>/files目錄。

  openFileOutput()方法的第二參數用於指定操作模式,有四種模式,分別為:

    Context.MODE_PRIVATE    = 0
    Context.MODE_APPEND    =  32768
    Context.MODE_WORLD_READABLE =  1
    Context.MODE_WORLD_WRITEABLE =  2


  Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到原文件中,可以使用Context.MODE_APPEND。
  Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。
  Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有權限讀寫該文件。
  MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取;MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。

如果希望文件被其他應用讀和寫,可以傳入:
openFileOutput("itcast.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);

(1):判讀文件是否存在

public boolean existsFile(String fileName){
     String path = this.getFilesDir().getPath()+"//"; File file
= new File(path+fileName); if(file.exists()){ return true; } return false; }

(2):讀取文件

public String readFile(String fileName) throws IOException{
        FileInputStream fis = context.openFileInput(fileName);
        int len = fis.available();
        byte []buffer = new byte[len];
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        while((fis.read(buffer))!=-1){
            baos.write(buffer);
        }
        byte []data = baos.toByteArray();
        baos.close();
        fis.close();
        return new String(data);
    }

(3):保存文件

public void saveFile(String fileName, String str) throws IOException{
        FileOutputStream fos = context.openFileOutput(fileName, Activity.MODE_APPEND);
        byte[]bytes=str.getBytes();
        fos.write(bytes);
        fos.flush();
        fos.close();
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM