——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
让我们的程序在出现异常情况时,不至于崩溃;
1).try…catch…
2).try…catch…catch…catch…
注意:多catch语句中的异常类型,可以是平级关系,也可以是子父级关系;
如果是子父级关系,父类类型的异常,一定放在catch列表的末尾
3).try…catch…finally…
4).try…catch…catch…catch…finally…
5).try…finally:
try{ //代码 }catch(异常类型1 | 异常类型2 | 异常类型3 变量名){ }
注意:多个异常类型必须是”平级关系”,不能是子父类关系;
1).用在方法的声明处;
2).throws后面跟的”异常类名”,可以有多个;
3).throws表示:此方法”可能”会产生此类型异常。如果产生异常,异常对象是由JVM产生;
4).声明抛出的异常类型:
1>.运行时异常:调用者可以不捕获;
2>.非运行时异常:调用者必须捕获(或者抛出);
1).用在方法体内;
2).throw后面跟的”异常对象”,只能有一个;
3).throw表示:抛出了一个”异常对象”。异常对象已经产生了(可以由程序产生,也可以由JVM产生)
4).抛出的异常类型:
1>.运行时异常:方法声明处可以不声明throws此类型异常;调用者也可以不捕获;
2>.非运行时异常:方法声明处必须声明throws此类型异常;调用者必须捕获;
1.自定义类,继承自Exception或者其它子类即可;
2.添加两个构造方法:
1).一个无参的构造方法;
2).另一个带String message的构造方法(用于指定异常消息)
1.java.io.File:可以表示磁盘上的一个文件,或者目录;
2.文件或者目录可以存在;
3.可以通过File对象内部的一些方法对此文件或目录进行操作:
4.构造方法:
public File(String pathname):使用一个路径构造一个File(此路径可以是相对路径、绝对路径、文件路径、目录路径、可以存在,也可以不存在)
public File(String parent,String child):使用父目录名,子文件名构造一个File对象;
public File(File parent,String child):使用代表父目录的File对象和子文件的String构造一个File对象;
5.创建的方法:
public boolean createNewFile():创建文件(如果成功创建返回true,否则(文件已经存在)返回false)
public boolean mkdir():创建单级目录
public boolean mkdirs():创建多级目录
6.删除功能:
public boolean delete():可以删除文件、可以删除目录 (一定要是空目录)
7.重命名功能:
public boolean renameTo(File dest)
输出的方法:
1).write(int n):输出一个字节
2).write(byte[] b):输出一个字节数组;
3).write(byte[] b, int off,int len):输出字节数组的一部分;
FileOutputStream(类):
FilterOutputStream(类):
BufferedOutputStream(缓冲流)
读取的方法:
1).int read():读取一个字节
2).int read(byte[] b):读取一个字节数组;
FileInputStream(类):
FilterInputStream(类):
BufferedInputStream(缓冲流);
输出的方法:
1).write(int n):输出一个字符;
2).write(char[] c):输出一个字符数组;
3).write(char[] c ,int off,int len):输出字符数组的一部分;
4).write(String s):输出一个字符串;
5).write(String s,int off,int len):输出字符串的一部分;
OutputStreamWriter(转换流)
FileWriter(字符流)
BufferedWriter(缓冲流):
void newLine():输出一个换行符;
读取的方法:
1).int read():读取一个字符;
2).int read(char[] c):读取一个字符数组;
InputStreamReader(转换流);
FileReader(字符流)
BufferedReader(缓冲流):
String readLine():读取一行数据;
public class Demo {
public static void main(String[] args) throws IOException {
//指定操作目录
File orgFile = new File("E:\\1018\\day_27");
//指定目标目录
File tagFile = new File("E:\\1018\\day_27\\avi");
//调用剪切方法
cut(orgFile,tagFile);
}
private static void cut(File orgFile,File tagFile) throws IOException{
File[] fileArray = orgFile.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
File file = new File(dir,name);
if(file.isFile() && file.getName().endsWith(".avi")){
return true;
}
return false;
}
});
for(File f : fileArray){
copy(f, tagFile);
f.delete();
}
System.out.println("剪切完毕");
}
private static void copy(File f1,File f2) throws IOException{
BufferedInputStream in = new BufferedInputStream(new FileInputStream(f1));
String fileName = f1.getName();
if(!f2.exists()){
f2.mkdir();
}
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(f2,fileName)));
int n = 0;
byte[] byteArray = new byte[1024];
while((n = in.read(byteArray)) != -1){
out.write(byteArray, 0, n);
}
in.close();
out.close();
}
}