Android學習總結——檔案儲存

來源:互聯網
上載者:User

標籤:

Android中檔案儲存體的操作:

1.Activity的openFileOutput()方法可以把資料輸出到檔案中
2.建立的檔案儲存在/data/data/<package name>/files目錄
3.實現過程與在java中儲存資料到檔案中是一樣的

<!-- 在SD卡中建立與刪除檔案許可權 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 向SD卡寫入資料許可權 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

public class MainActivity extends Activity{    protected void onCreat(Bundle savedInstanceState){        super.onCreat(savedInstanceState);        setContentView(R.layout.activity_main);        File file=new File("/mnt/sdcard/test"); //建立檔案        if(!file.exists()){ //判斷檔案是否存在            try{                file.createNewFile(); //檔案不存在就建立它            }catch(IOException e){                e.printStackTrace();            }        }else{            Toast.makeText(MainActivity.this,"檔案已存在",1000).show();        }       //file.delete(); //刪除檔案    }}

 

1.目錄結構。this.getFilesDir().當前程式預設的資料存放區目錄
2.this.getCacheDir(),預設的快取檔案的存放位置,不太重要的建立使用,記憶體不足的時候,系統會自動刪除app中cache目錄的資料
3.this.getDir("xch",MODE_PRIVATE);/data/data/<包名>/app_xch
4.this.getExternalCacheDir(),外部的儲存位置,app卸載後會自動刪除。
5.如果開發人員不遵守不把資料放入data/data/<包名>或者/mnt/sdcard/Android/data/<包名>,卸載不會清除,會造成所謂的資料垃圾。

 

 

 

Demo:

package com.example.filereadwrite;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private EditText content;    private Button btn_SaveRead;    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        content=(EditText) findViewById(R.id.et);        btn_SaveRead=(Button) findViewById(R.id.btn_SaveRead);        tv=(TextView) findViewById(R.id.tv);        btn_SaveRead.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()){            case R.id.btn_SaveRead:                writeFile(content.getText().toString());                tv.setText(readFile());                break;        }    }    /**     * 將內容寫入檔案     * @param content     */    public void writeFile(String content){        try {            FileOutputStream fos=openFileOutput("text.txt",MODE_PRIVATE);            fos.write(content.getBytes());            fos.close();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    /**     * 將檔案內容讀出     */    public String readFile(){        String content="";        try {            FileInputStream fis=openFileInput("text.txt");            ByteArrayOutputStream baos=new ByteArrayOutputStream();//可以捕獲記憶體緩衝區的資料,轉換成位元組數組            int len=0;            byte[] buffer=new byte[1024];            while((len=fis.read(buffer))!=-1){                baos.write(buffer,0,len);            }            content=baos.toString();            fis.close();            baos.close();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return content;    }}

注: FileOUtputStream fos= openOutoput(檔案名稱,存取權限);
     fos.write(寫入的二進位檔案);

     byte [] buffer = new byte[1024];// 最多可存1024位元組

     baos.write(buffer, 0, len);// 0表示位移量為0

 

Android學習總結——檔案儲存

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.