ym——Android从零开始(5)(文件操作+日记+单元测试)(新)

时间:2022-03-05 00:30:21

转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持!


前言

写代码的时候,要先理清楚思路,有思路的情况下,才能写好代码~!

文件相关操作

Android系统文件目录

system:        系统目录,放置android运行核心库

data:                应用目录,放置应用和应用数据

mnt                系统挂载的外部存储信息


Android文件操作模式

1MODE_APPEND                只能被创建的应用使用,如果有就追加,没有就创建

2MODE_PRIVATE                        只能被创建的应用只有,写入文件时会覆盖,

3MODE_WORLD_READABLE                其他应用程序可以读取

4MODE_WORLD_WRITEABLE        其他应用程序可以写,会覆盖原有文件

MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE

(MODE_WORLD_READABLE/MODE_WORLD_WRITEABLE)外部可读可写


Android保存文件四步走:

1、创建一个文件

2、创建一个输出流

3、写入数据

4、关闭流


Android读取文件六步走:

1、创建一个文件

2、创建一个输入流

3、创建一个缓冲流

4、从输入流中读取数据到缓冲流中

5、从缓冲流中得到数据

6、关流


在保存和读取的时候我们可以通过上下文拿到应用程序的包名

Sdcard

public void saveSdcard(String name,String content) throws Exception{
File file = new File("/mnt/sdcard",name);
FileOutputStream fos = new FileOutputStream(file);
fos.write(content.getBytes());
fos.close();
}


public String readSdcard(String name) throws Exception{
//判断是否有sdcard
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File file = new File(Environment.getExternalStorageDirectory(),name);
FileInputStream fis = new FileInputStream(file);
byte[] data = changeStreamToBytes(fis);
return new String(data);
}
Environment.getExternalStorageDirectory(),// 得到Sdcard存储路径
context.getFilesDir();///data/data/包名/files
context.getCacheDir();///data/data/包名/cache
return null;

}


Android文件权限:

- --- --- ---

1、目录(d) / 文件(-)

2、自身的访问权限

3、同组的访问权限

4、其他应用程序的访问权限

可读        w 可写        x 可执行


日志

记录异常信息,  在j2ee中我们是通过syso输出的,  

而在android中有Log日志处理类  重要操作:银行的转账

Log.v                verbose

Log.d                debug

Log.i                into

Log.w                warn

Log.e                error


单元测试

每个单元模块的业务方法都需要进行测试这样就不用启动整个项目去运行处理了。

Junit测试是单元测试中的一种

Junit测试的三部曲:

1、引入Junit jar

在清单文件AndroidMainFest.xml中配置

                //引入测试类库        在application标签中加入
<user-library android:name="android.test.runner"/>

2、配置测试启动类

application标签外加上

 <instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="应用程序包"></instrumentation>

3、对业务方法进行测试(测试类必须继承AndroidTestCase)

断言(Asset):是对方法返回值进行测试的