Android Saving Data(二)

來源:互聯網
上載者:User

標籤:void   建立   extend   isp   擷取   images   code   mode   span   

        Saving File

android讀寫檔案的形式和普通的java IO的方式並沒有什麼不同,唯一有所限制的是當我們建立檔案的時候不能夠在像javaSE那樣隨意了。一般android讀寫檔案有兩種形式:

1 File file = new File(context.getFilesDir(), filename);

2 FileOutputStream outputStream = openFileOutput(filename, Context.MODE_PRIVATE);

強烈推薦使用第一種方式,因為在第一種方式的情況下我們可以使用許多進階點的檔案讀寫方法,這樣不說能提高效率,但是能夠減少錯誤機率。

代碼:

public class MainActivity extends Activity {    TextView view;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.fragment_layout);        view=(TextView) findViewById(R.id.textView1);        Button write=(Button) findViewById(R.id.button1);        write.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                view.setText(getFilesDir().toString());                String filename = "myfile";                String string = "Hello world!";                FileOutputStream outputStream;                try {                  outputStream = openFileOutput(filename, Context.MODE_APPEND);                  PrintWriter pw=new PrintWriter(outputStream);                  pw.println(string);                  pw.close();                  if(outputStream!=null)outputStream.close();                } catch (Exception e) {                  e.printStackTrace();                }                            }        });        Button read=(Button) findViewById(R.id.button2);        read.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                                String filename="myfile";                try {                    BufferedReader reader=new BufferedReader(new FileReader(new File(getFilesDir(), filename)));                    String res="";                    res=reader.readLine();                    view.setText(res);                    reader.close();                } catch (FileNotFoundException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                } catch (IOException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }            }        });    }}
View Code

注意:android中記憶體和外存的讀寫沒有什麼不同,記憶體擷取目錄使用getFileDir(),而外存用:getExternalStoragePublicDirectory()用於在外存公用部分儲存檔案

getExternalFilesDir()用於儲存個人檔案的時候使用。

此外:

getExternalStorageState() 查詢外部儲存狀態;

getFreeSpace()getTotalSpace()查出是否有足夠的可用空間;

getCacheDir() 定期建立的所有快取檔案。

Android Saving Data(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.