package first.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;
public class NotebookActivity extends Activity {
private EditText name,text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
name=(EditText)findViewById(R.id.editText1);
text=(EditText)findViewById(R.id.editText2);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, 0, 0, "保存");
menu.add(0, 1, 0, "清空");
menu.add(0, 2, 0, "打开");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
String nameINPUT=name.getText().toString();
String textINPUT=text.getText().toString();
if(item.getItemId()==0){
if(nameINPUT.equals("")){
Toast.makeText(getApplicationContext(), "输入栏不能为空", Toast.LENGTH_SHORT).show();
}
else{
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
fileACTION action=new fileACTION(this);
try {
action.save(nameINPUT, textINPUT);
Toast.makeText(getApplicationContext(), "保存成功", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
Toast.makeText(getApplicationContext(), "Sd卡不存在", Toast.LENGTH_SHORT).show();
}
}
}
if(item.getItemId()==1){
text.setText("");
}
if(item.getItemId()==2){
Intent intent=new Intent();
intent.setClass(NotebookActivity.this, SDlist.class);
NotebookActivity.this.startActivityForResult(intent, 10);
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
String temp=data.getStringExtra("data");
if(resultCode==RESULT_OK){
fileACTION action=new fileACTION(this);
try {
text.setText(action.load(temp));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
下面这个是文件操作类
package first.test;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.content.Context;
import android.os.Environment;
import android.widget.Toast;
public class fileACTION {
private Context context;
public fileACTION(Context context){
this.context=context;
}
public void save(String filename,String text) throws Exception{
File file=new File(Environment.getExternalStorageDirectory(), filename+".txt");
FileOutputStream outputStream=new FileOutputStream(file);
outputStream.write(text.getBytes());
outputStream.close();
}
public String load(String filename) throws Exception{
File file=new File(Environment.getExternalStorageDirectory(), filename);
FileInputStream inputStream=new FileInputStream(file);
ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream();
byte[] bs=new byte[1024];
int len=0;
while((len=inputStream.read(bs))!=-1){
arrayOutputStream.write(bs, 0, len);
}
byte[] data=arrayOutputStream.toByteArray();
inputStream.close();
arrayOutputStream.close();
return new String(data);
}
}
接下来是SD卡列表类,用于显示SD卡上的TXT文件列表,并且可以点击打开
package first.test;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class SDlist extends Activity {
private TextView textView;
private ListView listView;
String itemdata;
ArrayList<String> list=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
textView=(TextView)findViewById(R.id.textView1);
listView=(ListView)findViewById(R.id.listView1);
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File filePATH=new File(Environment.getExternalStorageDirectory().getAbsolutePath());
if(filePATH.listFiles().length>0){
for(File file:filePATH.listFiles()){
String fileNAME=file.getName();
if(fileNAME.indexOf(".txt")!=-1){
list.add(fileNAME);}
}
}
}
else{
Toast.makeText(getApplicationContext(), "SD卡不存在或写保护", Toast.LENGTH_SHORT).show();
}
ArrayAdapter<String> listtemp=new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, list);
listView.setAdapter(listtemp);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
itemdata=(String) listView.getItemAtPosition(arg2);
Intent intent=new Intent();
intent.setClass(SDlist.this, NotebookActivity.class);
intent.putExtra("data", itemdata);
setResult(RESULT_OK, intent);
finish();
}
});
}
}