废话不多说,代码中有述!
<span style="font-size:13px;">package com.linxcool.main;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MyFileSystem extends Activity {
private Button rawButton;
private Button assetsButton;
private Button privateInButton;
private Button privateOutButton;
private Button sdCardButton;
private Button writePrefButton;
private Button readPrefButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rawButton = (Button) findViewById(R.id.rawButton);
assetsButton = (Button) findViewById(R.id.assetsButton);
privateInButton = (Button)findViewById(R.id.privateInButton);
privateOutButton = (Button)findViewById(R.id.privateOutButton);
sdCardButton = (Button)findViewById(R.id.sdCardButton);
writePrefButton = (Button)findViewById(R.id.writePrefButton);
readPrefButton = (Button)findViewById(R.id.readPrefButton);
initAssetsFile();
initRawFile();
initPrivateIn(this);
initPrivateOut(this);
initSdCard(this);
initWritePreferences();
initReadPreferences();
}
/**
* assets方式
*/
private void initAssetsFile(){
assetsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AssetManager assetManager=getAssets();
try {
InputStream in=assetManager.open("file.txt");
showMsg(in);
} catch (IOException e) {e.printStackTrace();}
}
});
}
/**
* raw方式
*/
private void initRawFile(){
rawButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InputStream in=getResources().openRawResource(R.raw.file);
showMsg(in);
}
});
}
/**
* 写入私有文件
* 文件将保存在/data/data/[APP package]/files/ 目录下
*/
private void initPrivateIn(final Context context){
privateInButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String fileName = "myPrivateFile.txt";
FileOutputStream fos = null;
try {
fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
PrintWriter pw = new PrintWriter(fos);
pw.println("往私有文件里面写入de内容");
pw.flush();
Toast.makeText(context, "往私有文件里面写入了内容", Toast.LENGTH_SHORT).show();
fos.close();
} catch (Exception e) {e.printStackTrace();}
}
});
}
/**
* 读取私有文件
*/
private void initPrivateOut(final Context context){
privateOutButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String fileName = "myPrivateFile.txt";
FileInputStream in;
try {
in=context.openFileInput(fileName);
showMsg(in);
} catch (Exception e) {e.printStackTrace();}
}
});
}
/**
* SD卡方式
*/
private void initSdCard(Context context){
sdCardButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String msg="";
File file=new File("/");
if(file.exists()){
if(file.isDirectory()&&file.canRead()){
String[] fileNames=file.list();
for (String fileName : fileNames) {
msg+=fileName+"\n";
}
}
else msg=file.getName();
}
Toast.makeText(MyFileSystem.this, msg, Toast.LENGTH_SHORT).show();
}
});
}
/**
* 首选项文件
*/
private void initWritePreferences(){
writePrefButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String prefFileName = "myPref.txt";
SharedPreferences sp = getSharedPreferences(prefFileName, Context.MODE_PRIVATE);
Editor editor = sp.edit();
editor.putString("name1", "abc");
editor.putString("name2", "xyz");
editor.commit();
}
});
}
private void initReadPreferences(){
readPrefButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String prefFileName = "myPref.txt";
SharedPreferences sp = getSharedPreferences(prefFileName, Context.MODE_PRIVATE);
String name1 = sp.getString("name1", "");
Toast.makeText(MyFileSystem.this, name1, Toast.LENGTH_SHORT).show();
}
});
}
private void showMsg(InputStream in){
try {
BufferedReader br=new BufferedReader(new InputStreamReader(in));
String text=br.readLine();
Toast.makeText(MyFileSystem.this, text, Toast.LENGTH_SHORT).show();
br.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}</span>