十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文实例讲述了Android开发之文件操作。分享给大家供大家参考,具体如下:
成都创新互联成立于2013年,我们提供高端成都网站建设、成都网站制作、成都网站设计、网站定制、网络营销推广、小程序制作、微信公众号开发、成都网站营销服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为混凝土泵车企业提供源源不断的流量和订单咨询。
目前,几乎所有的设备都会涉及到文件的操作,例如什么电脑,手机等设备。Android的文件操作和电脑是比较类似的,既可以存储在手机内置的存储器里也可以是sd卡。在这篇文章里主要介绍在手机内置存储器里的文件操作。
一. 开发流程
(1)界面的设计
(2)设计android的业务层
(3)单元测试
(4)设置android的控制器层
二. 开发步骤
(1)设计软件界面
<?xml version="1.0" encoding="utf-8"?>
这里也把R文件给大家看看
/* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */ 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"?>Hello World, FileActivity! 文件的读取 输入文件名称 输入文件内容 保存 文件保存成功 文件保存失败
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android文件操作技巧汇总》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android布局layout技巧总结》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。