您的位置:首页 > 编程语言 > Java开发

Java 异常和文件

2016-04-15 09:07 246 查看

1.异常

(1)程序出现的不正常的情况。

(2)异常的体系

Throwable

|--Error严重问题,我们不处理。

|--Exception

|--RuntimeException运行期异常,我们需要修正代码

|--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过
(3)异常的处理:

A:JVM的默认处理

把异常的名称,原因,位置等信息输出在控制台,但是呢程序不能继续执行了。

B:自己处理

a:try...catch...finally

自己编写处理代码,后面的程序可以继续执行

b:throws

把自己处理不了的,在方法上声明,告诉调用者,这里有问题
(4)面试题

A:编译期异常和运行期异常的区别?

编译期异常 必须要处理的,否则编译不通过

运行期异常 可以不处理,也可以处理

B:throw和throws是的区别

throw:

在方法体中,后面跟的是异常对象名,并且只能是一个

throw抛出的是一个异常对象,说明这里肯定有一个异常产生了

throws:

在方法声明上,后面跟的是异常的类名,可以是多个

throws是声明方法有异常,是一种可能性,这个异常并不一定会产生

(5)finally关键字及其面试题

A:finally用于释放资源,它的代码永远会执行。特殊情况:在执行到finally之前jvm退出了

B:面试题

a:final,finally,finalize的区别?

b:如果在catch里面有return,请问finally还执行吗?如果执行,在return前还是后

会,前。

C:异常处理的变形

try...catch...finally

try...catch...

try...catch...catch...

try...catch...catch...fianlly

try...finally
(6)自定义异常

继承自Exception或者RuntimeException,只需要提供无参构造和一个带参构造即可
(7)异常的注意实现

A:父的方法有异常抛出,子的重写方法在抛出异常的时候必须要小于等于父的异常

B:父的方法没有异常抛出,子的重写方法不能有异常抛出

C:父的方法抛出多个异常,子的重写方法必须比父少或者小

2:File

(1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件

File 的构造器

File(File parent,String child)


根据 parent 抽象路径名和 child 路径名字符串创建一个新
File
实例。
File(String pathname)


通过将给定路径名字符串转换为抽象路径名来创建一个新
File
实例。
File(String parent,String child)


根据 parent 路径名字符串和 child 路径名字符串创建一个新
File
实例。
File(URI uri)


通过将给定的 file:URI 转换为一个抽象路径名来创建一个新的File 实例。
File 的实例方法

boolean
canExecute()


测试应用程序是否可以执行此抽象路径名表示的文件。
boolean
canRead()


测试应用程序是否可以读取此抽象路径名表示的文件。
boolean
canWrite()


测试应用程序是否可以修改此抽象路径名表示的文件。
int
compareTo(File pathname)


按字母顺序比较两个抽象路径名。
boolean
createNewFile()


当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
staticFile
createTempFile(String prefix,String suffix)


在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。
staticFile
createTempFile(String prefix,String suffix,File directory)


在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
boolean
delete()


删除此抽象路径名表示的文件或目录,该方法为直接删除,不经过回收站,且当删除的目录不空时是无法删除的。
void
deleteOnExit()


在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
boolean
equals(Object obj)


测试此抽象路径名与给定对象是否相等。
boolean
exists()


测试此抽象路径名表示的文件或目录是否存在。
File
getAbsoluteFile()


返回此抽象路径名的绝对路径名形式。
String
getAbsolutePath()


返回此抽象路径名的绝对路径名字符串。
File
getCanonicalFile()


返回此抽象路径名的规范形式。
String
getCanonicalPath()


返回此抽象路径名的规范路径名字符串。
long
getFreeSpace()


返回此抽象路径名指定的分区中未分配的字节数。
String
getName()


返回由此抽象路径名表示的文件或目录的名称。
String
getParent()


返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回
null
File
getParentFile()


返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回
null
String
getPath()


将此抽象路径名转换为一个路径名字符串。
long
getTotalSpace()


返回此抽象路径名指定的分区大小。
long
getUsableSpace()


返回此抽象路径名指定的分区上可用于此虚拟机的字节数。
int
hashCode()


计算此抽象路径名的哈希码。
boolean
isAbsolute()


测试此抽象路径名是否为绝对路径名。
boolean
isDirectory()


测试此抽象路径名表示的文件是否是一个目录。
boolean
isFile()


测试此抽象路径名表示的文件是否是一个标准文件。
boolean
isHidden()


测试此抽象路径名指定的文件是否是一个隐藏文件。
long
lastModified()


返回此抽象路径名表示的文件最后一次被修改的时间。
long
length()


返回由此抽象路径名表示的文件的长度。
String[]
list()


返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[]
list(FilenameFilter filter)


返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[]
listFiles()


返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[]
listFiles(FileFilter filter)


返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[]
listFiles(FilenameFilter filter)


返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
staticFile[]
listRoots()


列出可用的文件系统根。
boolean
mkdir()


创建此抽象路径名指定的目录。
boolean
mkdirs()


创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
boolean
renameTo(File dest)


重新命名此抽象路径名表示的文件。
boolean
setExecutable(boolean executable)


设置此抽象路径名所有者执行权限的一个便捷方法。
boolean
setExecutable(boolean executable,boolean ownerOnly)


设置此抽象路径名的所有者或所有用户的执行权限。
boolean
setLastModified(long time)


设置此抽象路径名指定的文件或目录的最后一次修改时间。
boolean
setReadable(boolean readable)


设置此抽象路径名所有者读权限的一个便捷方法。
boolean
setReadable(boolean readable,boolean ownerOnly)


设置此抽象路径名的所有者或所有用户的读权限。
boolean
setReadOnly()


标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。
boolean
setWritable(boolean writable)


设置此抽象路径名所有者写权限的一个便捷方法。
boolean
setWritable(boolean writable,boolean ownerOnly)


设置此抽象路径名的所有者或所有用户的写权限。
String
toString()


返回此抽象路径名的路径名字符串。
URI
toURI()


构造一个表示此抽象路径名的 file:URI。
如下的代码,可以删除任意目录或文件

 public staticvoid deleteFile(File srcFile) {
if (srcFile.isDirectory()) { //如何使目录则继续递归,否则直接删除
for (File file : srcFile.listFiles()) {
deleteFile(file);
}
}
srcFile.delete();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: