編輯:關於Android編程
Android中對操作的文件主要可以分為:File、XML、SharedPreference。
這篇博客主要介紹對File的操作:
1、MainActivity
package com.example.filetest; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private EditText et_name; private EditText et_content; private Button sdBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); et_name = (EditText) findViewById(R.id.nameET); et_content = (EditText) findViewById(R.id.contentET); sdBtn = (Button) findViewById(R.id.sdcBT); } @Override protected void onResume() {//當界面切換到前台是執行這個方法... super.onResume(); //根據SD卡的狀態設置按鈕是否可用 if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ sdBtn.setEnabled(false); }else{ sdBtn.setEnabled(true); } } public void onClick(View view){ String name = et_name.getText().toString(); String content = et_content.getText().toString(); FileService service = new FileService(this); try{ switch (view.getId()) { case R.id.romBT: System.out.println("--------->保存到rom中"); service.saveToRom(name,content); break; case R.id.sdcBT: System.out.println("--------->保存到SD卡中"); service.saveToSD(name,content); break; } Toast.makeText(getApplicationContext(), "保存成功", 1).show(); }catch(Exception e){ e.printStackTrace(); Toast.makeText(getApplicationContext(), "保存失敗", 1).show(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
2、FileService
package com.example.filetest; import java.io.FileOutputStream; import android.content.Context; import android.os.Environment; public class FileService { private Context context; public FileService(Context context){ this.context = context; } public void saveToSD(String name, String content) throws Exception{ /** * 創建輸出流指定SD卡所在的位置 * Environment.getExternalStorageDirectory():獲取SD卡的位置,為/mnt/sdcard * */ FileOutputStream fos = new FileOutputStream(Environment.getExternalStorageDirectory() + "/" + name); fos.write(content.getBytes()); fos.close(); } public void saveToRom(String name, String content) throws Exception{ /** * 如果打開成功,會在/data/data/包名/下創建愛你一個files目錄,並把文件放在裡面 * * Context.MODE_PRIVATE: 只有自己能訪訪問所創建的文件 * Context.MODE_WORLD_READABLE : 全世界都可以讀,也就是說,誰都可以讀 * Context.MODE_WORLD_WRITEABLE : 全世界都可以寫,也就是說,誰都可以寫. * Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE: 全世界都可以進行讀寫... * Context.MODE_APPEND: 私有 && 只能追加 * * 創建的時候設置成了Context.MODE_PRIVATE,這時候,別的程序想讀想寫都不可以了,只能是他自己進行讀寫... */ FileOutputStream fos = context.openFileOutput(name, Context.MODE_WORLD_READABLE);//打開 /data/data/應用的報名/的一個文件 fos.write(content.getBytes());//往ROM中寫內容不需要權限 fos.close(); } }
3、FileTest(用於測試)
package com.example.filetest; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import android.content.Context; import android.test.AndroidTestCase; public class FileTest extends AndroidTestCase { /** * 自己讀(正常結果是:可以成功).用來測試Context.MODE_PRIVATE是否正確作用 * @throws Exception */ public void testRead() throws Exception{ FileInputStream fis = getContext().openFileInput("wr.txt"); // FileInputStream in = new FileInputStream("/data/data/com.exmaple.filetest/files/hjd.txt");//這種寫法和上面那種寫法是等價的 ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len; while((len = fis.read(buffer)) != -1){ baos.write(buffer,0,len); } fis.close(); baos.close(); String content = new String(baos.toByteArray()); System.out.println("---->content: " + content); } public void testWrite() throws Exception{ FileOutputStream fos = new FileOutputStream("/data/data/com.example.filetest/files/hjd.txt"); String content = "hahahahah"; fos.write(content.getBytes()); fos.close(); } }
二、
Context的幾種MODE其實可以從DDMS中的/data/data/應用名/files/文件可以看到其效果
源碼下載:http://download.csdn.net/detail/caihongshijie6/7613405
前言:ListView——列表,它作為一個非常重要的顯示方式,不管是在Web中還是移動平台中,都是一個非常好的、不開或缺的展示信息的工具。在And
在上一篇文章當中,我們學習了DiskLruCache的概念和基本用法,但僅僅是掌握理論知識顯然是不夠的,那麼本篇文章我們就來繼續進階一下,看一看在實戰當中應
直接看代碼,注釋都寫清楚了復制代碼 代碼如下:public class MainActivity extends Activity { private Imag
先看效果: 現在很多的應用效果都需要做的炫些,像UC,以及天天靜聽,效果很炫的,源碼已經對外開放了,有興趣的可以去研究下的 上源碼main.xml&l