2516天 Mr.贰呆

唯一自信的就是自己的人品。
寻求王者玩家一起开黑净化峡谷环境​​

【Android】学习札记第7章之异常及IO初步

发布于 / 1269 次围观 / 0 条评论 / Android / 二呆 /

开发一个android程序,请多少个老师也不如自己遇到问题自己解决,项目中会存在多种不同的异常,并且如果你自己有机会写了一个对团队都有用的类,可能会存在异常,所以也要自定义异常,面对各种各样的异常一定要耐心的去解决问题。

IO流在android程序中也是不可缺少的知识点,IO会产生不同的IO异常,下面就针对这两方面去学习,首先先来熟悉一下异常和IO的基本知识。

工具/原料

JDK、eclipse、android SDK、ADT

一、异常(java.lang)

1、throws(从管道向外抛出异常)

void f() throws Exception{}

①RuntimeException(默认管道,不需要抛出):

在方法上默认存在它的抛出管道。

它和它的子类对象,都可以从它的管道抛出。

②其他异常:需要手动设置抛出管道,才能抛出;否则,必须捕获异常。

③子类抛出异常不能比父类抛出异常多。(子类的访问级别不能比父类的访问级别小。)

2、throw

执行抛出动作,手动抛出异常。throw new Exception("异常信息");,当运行后等同于return后面语句不再执行。

3、异常包装

无法修复错误,将异常抛给调用位置处理,将不能抛出的异常封装到可抛出的类型(如:RuntimeException)中抛出。

4、自定义异常

①起一个合适的类型名称

②找一个合适的异常父类(Exception:需要设置抛出管道、RuntimeException)

③添加构造方法

二、IO(java.io)

Ⅰ、File(java.io.File)

File对象封装了一个磁盘路径字符串(路径:文件路径或目录路径,可有可无)。

Ⅱ、创建对象

File f=new File("d:/a.txt");

File f=new File("d:/","a.txt");

Ⅲ、方法:

①通用:

canRead():是否可读

canWrite():是否可写

canExecute():是否可执行

isHidden():是否有隐藏文件

exists():判断是否存在文件

getAbsolutePath():获得绝对路径

getName():获得文件名

getParent():获得父目录

lastModified():返回修改时间()毫秒值

length():文件字节量,对目录无效

isDirectory():是否是目录

isFile():是否是文件

getTotalSpace():获得空间总大小

getFreeSpace():获得剩余空间大小

②文件或目录操作:

createNewFile():创建文件,返回boolean值,如果文件已存在,返回false,如果存在且所在目录不存在,会有异常。

delete():删除一个文件或一个“空目录”,返回boolean值

mkdir():创建单层目录,返回boolean值

mkdirs():创建多层目录,返回boolean值

renameTo():改名、移动,返回boolean值

static createTempFile(前缀,扩展名):创建系统临时文件

③文件列表:

list():返回所有文件和目录的字符串数组

listFiles():返回所有文件和目录的File数组

list(new FilenameFilter(){}):返回过滤好的文件和目录的字符串数组

listFiles(new FilenameFilter(){}):返回过滤好的所有文件和目录的File数组

Ⅳ、递归:

连续调用自己的方法,使自己一次一次变成最简单的方法。

Ⅴ、练习:

使用递归调用求目录的总大小。

注意事项

对于异常要认真对待异常信息,做到可以自己排查错误。

对于IO及IO流要清楚每一个IO的类的作用,才能在项目中游刃有余。

sitemap