import java.io.*;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
public class FileIOTest extends Activity {
private LinearLayout mainView=null;
private Button writeButton=null;
private Button readButton=null;
private TextView tv=null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
writeButton=new Button(this);
writeButton.setText("文件写入");
writeButton.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
fileWrite();
}
});
readButton=new Button(this);
readButton.setEnabled(false);
readButton.setText("文件读出");
readButton.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
fileRead();
}
});
tv=new TextView(this);
tv.setText("这里显示读出结果");
mainView=new LinearLayout(this);
mainView.setOrientation(LinearLayout.VERTICAL);
mainView.addView(writeButton);
mainView.addView(readButton);
mainView.addView(tv);
setContentView(mainView);
}
/*文件写*/
void fileWrite(){
//File file=this.getFilesDir();//打开私有目录
File file=new File("/sdcard");
String path=file.getAbsolutePath();//获取路径
String name="mydata1.dat";//新建文件名
File filex=new File(path,name);
//如果文件不存在,则创建一个文件
if(!filex.exists()){
try {
filex.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//获取文件输出流
FileOutputStream fos=null;
try {
fos=new FileOutputStream(filex);
byte buf[]="Hello,这是Android入门之文件操作(三)文件读写!".getBytes();
//上面涉及到字符串转字符,为了保证编码正常,建议采用下面的方法
//ByteArrayOutputStream baos=new ByteArrayOutputStream();
//DataOutputStream dos=new DataOutputStream(baos);
//try {dos.writeUTF("XXXXXXXXXXXXXXXXX");catch (IOException e1) {e1.printStackTrace();}
//byte[] buf=baos.toByteArray();
try {
fos.write(buf);//全面覆盖式的写,如果要添加或者修改,得把原来的先读出来再做处理
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
readButton.setEnabled(true);
}
/*文写读*/
void fileRead(){
//File file=this.getFilesDir();//打开私有目录
File file=new File("/sdcard");
String path=file.getAbsolutePath();//获取路径
String name="mydata1.dat";//新建文件名
File filex=new File(path,name);
//
try {
FileInputStream fis=new FileInputStream(filex);
byte buf[]=new byte[1024];
try {
int len=fis.read(buf);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
//显示读取结果
tv.setText(new String(buf));
//上面涉及字符转字符串,为了保证编码正常,建议采用下面的方法
//ByteArrayInputStream bais=new ByteArrayInputStream(buf);
//DataInputStream dis=new DataInputStream(bais);
//try {tv.setText(dis.readUTF());} catch (IOException e) {e.printStackTrace();}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}