Context爲我們提供了以下的幾個方法
方法名稱 |
描述 |
FileInputStream openFileInput(String name) |
打開應用程序的數據文件夾下的name文件對應的輸入流 |
FileOutputStream openFileOutput(String name,int mode) |
打開應用程序的數據文件夾下的name文件對應的輸出流,並且指定以某種方式打開。 |
第二個方法裏的第二個參數有以下幾種取值:
MODE_PRIVATE:說明該文件只能被當前的應用程序所讀寫
MODE_APPEND:以追加方式打開該文件,應用程序可以向該文件中追加內容。
MODE_WORLD_READABLE:該文件的內容可以被其他的應用程序所讀取
MODE_WORLD_WRITEABLE:該文件的內容可以被其他的應用程序所讀、寫
還有一些Context爲我們提供了其他幾個方法用來訪問應用程序的數據文件夾
方法名稱 |
描述 |
getDir(String name,int mode) |
在應用程序的數據文件下獲取或創建name對應的子目錄 |
File getFilesDir() |
得到該應用程序數據文件夾的絕對路徑 |
String[] fileList() |
等到該應用程序數據文件夾下的全部文件 |
deleteFile(String name) |
刪除該應用程序的數據文件夾下的指定文件 |
文件存儲的位置: /data/data/<package name>/files/
關於IO流的一些內容,可以參看我之前寫的一篇博客:
http://blog.csdn.net/jiahui524/article/details/6869524
http://blog.csdn.net/jiahui524/article/details/6869615
實例:File的簡單操作
package com.jiahui.filedemo;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.OutputStream;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class FileDemoActivity extends Activity {
private Button btnWrite, btnRead, btnGetDir;
private EditText edtContent;
private TextView tvResult, tvFileDir;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edtContent = (EditText) this.findViewById(R.id.edtContent);
tvResult = (TextView) this.findViewById(R.id.tvResult);
tvFileDir = (TextView) this.findViewById(R.id.tvFileDir);
btnWrite = (Button) this.findViewById(R.id.btnWrite);
btnRead = (Button) this.findViewById(R.id.btnRead);
btnGetDir = (Button) this.findViewById(R.id.btnGetDir);
// 寫入數據
btnWrite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
String content = edtContent.getText().toString();
// 以追加方式寫入數據
OutputStream outputStream = FileDemoActivity.this
.openFileOutput("test.txt", MODE_APPEND);
if (content != null) {
outputStream.write(content.getBytes(), 0,
content.getBytes().length);
}
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
});
//讀取數據
btnRead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
StringBuilder sb = new StringBuilder();
InputStream inputStream = FileDemoActivity.this
.openFileInput("test.txt");
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
sb.append(new String(buffer, 0, len));
}
tvResult.setText("讀取結果爲:" + sb.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
//得到相應文件的絕對路徑
btnGetDir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String absolutePath = FileDemoActivity.this.getFileStreamPath(
"test.txt").getAbsolutePath();
tvFileDir.setText(absolutePath);
}
});
}
}
實現效果:
用File Explorer查看,我們可以看到在相應的包下如下效果:
如需轉載引用請註明出處:http://blog.csdn.net/jiahui524