編輯:關於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常用優化技巧(Android群英傳)
前言:ListView——列表,它作為一個非常重要的顯示方式,不管是在Web中還是移動平台中,都是一個非常好的、不開或缺的展示信息的工具。在And
Android照片牆完整版,完美結合LruCache和DiskLruCache
在上一篇文章當中,我們學習了DiskLruCache的概念和基本用法,但僅僅是掌握理論知識顯然是不夠的,那麼本篇文章我們就來繼續進階一下,看一看在實戰當中應
android實現簡單的畫畫板實例代碼
直接看代碼,注釋都寫清楚了復制代碼 代碼如下:public class MainActivity extends Activity { private Imag
Android組件popupwindow使用方法詳解
先看效果: 現在很多的應用效果都需要做的炫些,像UC,以及天天靜聽,效果很炫的,源碼已經對外開放了,有興趣的可以去研究下的 上源碼main.xml&l