android的文件操作

网络111 徐京浩

package org.lxh.file; 
 
public final class R { 
    public static final class attr { 
    } 
    public static final class drawable { 
        public static final int icon=0x7f020000; 
    } 
    public static final class id { 
        public static final int button=0x7f050002; 
        public static final int content=0x7f050001; 
        public static final int filename=0x7f050000; 
    } 
    public static final class layout { 
        public static final int main=0x7f030000; 
    } 
    public static final class string { 
        public static final int app_name=0x7f040001; 
        public static final int button=0x7f040004; 
        public static final int content=0x7f040003; 
        public static final int failure=0x7f040006; 
        public static final int filename=0x7f040002; 
        public static final int hello=0x7f040000; 
        public static final int success=0x7f040005; 
    } 

(2)设计业务层

package org.lxh.service; 
 
 
import java.io.ByteArrayOutputStream; 
import java.io.FileInputStream; 
 
import java.io.FileOutputStream; 
 
import android.content.Context; 
import android.util.Log; 
 
public class FileService { 
    private Context context; 
 
    public FileService(Context context) {  //通过构造方法传入context 
        this.context = context; 
    } 
    //保存文件 
    public void saveFile(String filename,String content) throws Exception{  //异常交给调用处处理 
        FileOutputStream out=context.openFileOutput(filename, Context.MODE_PRIVATE); 
        out.write(content.getBytes()); 
        out.close(); 
    } 
    public String readFile(String filename) throws Exception{  //异常交给调用处处理 
        FileInputStream in=context.openFileInput(filename); 
        byte b[]=new byte[1024]; 
        int len=0; 
        ByteArrayOutputStream array=new ByteArrayOutputStream(); 
         
        while((len=in.read(b))!=-1){  //开始读取文件 
            array.write(b,0,len); 
        } 
        byte data[]=array.toByteArray(); //把内存里的数据读取出来 
         
        in.close();  //每个流都必须关闭 
        array.close(); 
        return new String(data);  //把byte数组转换为字符串并返回 
    } 

下面开始做单元测试,要添加的环境就不说了

package org.lxh.test; 
 
import org.lxh.service.FileService; 
 
import android.test.AndroidTestCase; 
import android.util.Log; 
 
public class Test extends AndroidTestCase { 
    public static final String TAG = "Test"; 
 
    public void testSave() { 
        FileService service = new FileService(this.getContext()); 
        try { 
            service.saveFile("01.txt", "hello"); 
        } catch (Exception e) { 
            Log.i(TAG, e.getMessage()); 
        } 
 
    } 
    public void testRead() { 
        FileService service = new FileService(this.getContext()); 
        try { 
            Log.i(TAG,service.readFile("01.txt")); 
        } catch (Exception e) { 
            Log.e(TAG, e.getMessage()); 
        } 
 
    } 

看一下运行之后的效果

 


\

 

 

\


 

 


单元测试通过了,下面来看下在模拟器上的效果,在这之前要先看下下面的代码


package org.lxh.file; 
 
import org.lxh.service.FileService; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
 
public class FileActivity extends Activity { 
    private FileService service; 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        service=new FileService(this); 
        Button button=(Button)findViewById(R.id.button); 
        button.setOnClickListener(new View.OnClickListener() {   
             
            public void onClick(View v) { 
                EditText filename=(EditText)findViewById(R.id.filename); 
                EditText content=(EditText)findViewById(R.id.content); 
                try { 
                    service.saveFile(filename.getText().toString(), content.getText().toString()); 
                    Toast.makeText(FileActivity.this, R.string.success, 1).show(); 
                } catch (Exception e) { 
                    Toast.makeText(FileActivity.this, R.string.failure, 1).show(); 
                    Log.e("FileActivity", e.getMessage()); 
                } 
            } 
        }); 
         
    } 

如果保存成功就给用户一个吐司通知

 

\


下面把strings.xml的代码也贴出来


<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="hello">Hello World, FileActivity!</string> 
    <string name="app_name">文件的读取</string> 
    <string name="filename">输入文件名称</string> 
    <string name="content">输入文件内容</string> 
    <string name="button">保存</string> 
    <string name="success">文件保存成功</string> 
    <string name="failure">文件保存失败</string> 
</resources> 

posted @ 2013-06-19 17:00  我是徐小雨  阅读(287)  评论(0编辑  收藏  举报