赞
踩
###JAVA异常
public class 子类名 extends 父类名{}—继承父类,拥有父类特性,同时是对父类的扩展;
Throwable:异常框架,错误或异常的超类;
Error:错误---无力解决的,无法控制的错误
Exception:异常---一个正常流程产生新的流程
RuntimeException:代码引起的异常,可通过修改代码解决
IOException:没办法通过代码处理的异常(文件找不到)。处理方法:1.将异常往上抛;2.try{}catch(){}
##File(文件)类常用整理##
boolean exists()
测试此抽象路径名表示的文件或目录是否存在。
boolean isFile()
测试此抽象路径名表示的文件是否是一个标准文件。
File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
continue---跳过此次操作继续执行下一个操作
try()catch(){}---尝试执行这个操作
Exception e---异常情况
getName---提取名字
throws IOException---异常命令需补充方法体
\r\n---换行
###文件漏洞
File file = new File(“D:/网络安全”);
File[] fs = file.listFiles();
for(File f:fs){
System.out.pr(f)
}
package com.mtlk.demo; import java.io.File; public class 文件扫描 { public static void main(String[] strs){ //主方法 String[] drives = {"d:/"}; //需要扫描的文件路径,以数组形式表现 for(String drive : drives){ //将数组中的值一个一个提取 File file = new File(drive); //实例化File这个类 if(!file.exists()){ //判断这个空间是否存在 continue; //如果不存在就跳过 }else{ getFiles(file); //如果存在进入下面调用的方法中执行 } } } private static void getFiles(File file) { //构造方法:写入参数file,属于File类 File[] childFiles = file.listFiles(); //将文件名表示为一个数组 int length = childFiles.length; //设置循环规则 for(int i=0;i<length;i++){ try { //尝试进行以下操作 File childFile = childFiles[i]; //将文件一个一个取出来 if(childFile.isFile()){ //判断是否是一个文件 System.out.println(childFile); //如果是文件,那么输出 }else { getFiles(childFile); //如果不是文件那么返回再获取数组执行一次 } } catch (Exception e){ //如果遇到权限等异常,那么跳过此次执行 continue; } } } }
package com.mtlk.demo; import java.io.File; public class 文件删除 { public static void main(String[] args) { String[] drives={"E:\\text"}; //需要删除的文件路径,以数组形式排列 for(String drive:drives){ //将数组的值一个一个提取处理 File file = new File(drive); //实例化File类 if(!file.exists()){ //判断是否存在 continue; //不存在就跳过此次操作 }else { getFile(file); //存在再执行下面调用的操作 } } } public static void getFile(File file){ //构造方法 File[] chidFile=file.listFiles(); //将文件名表示成一个数组 int length = chidFile.length; //控制循环次数 for (int i=0;i<length;i++){ try { File childsFile=chidFile[i]; //提取数组中每个值的下标 if(childsFile.isFile()){ //判断是否为一个正常文件 String name=childsFile.getName(); //如果是文件,那么将文件名转化为字符串 if (name.endsWith("jpg" )|| name.endsWith("docx")){ //判断字符串是否以这个字符结尾 childsFile.delete(); //如果是那么删除这个文件 } }else{ getFile(chidsFile); //如果不是文件,那么返回再执行一次 } }catch (Exception e){ continue; //如果遇到权限不够等情况,跳过此次操作 } } } }
##文件输入与输出
####输出:FileInputStream
FileInputStream(String name)
通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。
int available()
返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。
用来确定字节容器的大小。
int read()
从此输入流中写入数据字节。
**
原理:以字节流形式读取,用字节容器(数组)装取**
1.实例化这个类,输入读取路径。---字节流;
2.构造一个字节数组,字节流有多大,容器就构造多大;int临界值--2147483647=2097151kb=2047m
3.把字节流的东西读取到容器;
4.将数组还原为字符串
5.打印文件
java命令
package com.mtlk.demo;
import java.io.FileInputStream;
import java.io.IOException;
public class 文件流出 {
public static void main(String[] args)throws IOException {
FileInputStream fis = new FileInputStream("E:\\text.txt"); //实例化类,指定要写出的路径
byte[] context = new byte[fis.available()]; //创建一个字节数组作为容器
fis.read(context); //将字节流导入容器中
String s = new String(context); //转化为字符串
System.out.println(s); //输出这个字节流内容
}
}
####输入:FileOutputStream
FileOutputStream(String name)
创建一个向具有指定名称的文件中写入数据的输出文件流。
void write(byte[] b)
将 b.length 个字节从指定 byte 数组写入此文件输出流中。
byte[] getBytes()
使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
java命令
package com.mtlk.demo;
import java.io.FileOutputStream;
import java.io.IOException;
public class 文件写入 {
public static void main(String[] args)throws IOException {
String context = "JAVA真是优美的语言"; //写入的文字,字符串类型
FileOutputStream fos = new FileOutputStream("E:/text.txt",true); //实例化类,写入路径+true可以追加文本
fos.write(context.getBytes()); //将内容写入路径,以字节数组形式
fos.flush(); //刷新
fos.close(); //关闭
}
}
###综合使用:错误日志
getMessage
public String getMessage()
返回此 throwable 的详细消息字符串。
package com.mtlk.demo; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class 错误日志 { public static void main(String[] args) throws IOException { try { //尝试下面的操作 FileInputStream fis = new FileInputStream("E:/text/aa.txt"); //一个无法找到文件的路径 }catch (IOException e) { //异常时执行下面操作 FileOutputStream fos = new FileOutputStream("E:/text/log.txt",true); //异常时写入的路径 String date = new SimpleDateFormat("yyyy-hh-dd HH:mm:ss").format(new Date()); //写入的时间格式 String log = date + "" + e.getMessage()+ "" + "\r\n"; //写入的整体格式 fos.write(log.getBytes()); //以字节数组方式写入 fos.flush(); //刷新 fos.close(); //关闭 } } }
###综合使用:复制文件
package com.mtlk.demo;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class 复制文件 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("E:/text/text.txt"); //指定将要copy的文件源路径
byte[] context = new byte[fis.available()]; //创建一个字节数组接收它
fis.read(context); //读写到字节数组
FileOutputStream fos = new FileOutputStream("E:/demo.txt",true); //指定将要copy的文件目的路径
fos.write(context); //将文件写入到指定路径
fos.flush(); //刷新
fos.close(); //关闭
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。