您的位置:首页 > 其它

Androlid入门之文件系统操作(三)文件读写

2017-09-01 16:47 405 查看




[java] view plain copy

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();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: