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

     

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


 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值