异常和IO字节流

异常和IO字节流

1、异常

1.1、超类Throwable

A、Error--出现的错误我们搞软件开发的无法处理

B、Exception

1.2、Exception

A、RuntimeException

(a)、运行时间的异常

例如:

int a = 10;

int b = 0;

System.out.println(a/b);

B、RuntimeException

(a)、编译时期的异常

例如:

//编译时期的异常

private static void exeptionMethod_01() throws ParseException {

String time = "1990-01-01";

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

Date date = format.parse(time);

}

1.3、异常JVM默认的处理方式

A、错误的类

B、错误的信息

C、错误的位置

1.4、使用try...catch

A、ty{

有可能出现问题的代码

}catch(错误的类 类的变量名){

对错误的处理方式

}

B、使用类的变量名调用 printStackTrace 方法,打印错误信息

C、使用try处理之后  就算出现错误,代码也不会停止运行

D、一般情况下,处理方式会弹出一个友好的提示页面

 

1.5、throws

A、如果我们自己写的方法上抛出了编译时期的异常,那么这个异常谁调用谁处理

B、运行时期的异常如果抛出了异常,那么调用者可以不用处理。

1.6、异常处理

A、运行时期的异常

(a)、继承自RuntimeException--try...catch抓异常

(b)、编写代码的时候没有错误信息。运行时会出现的问题

B、编译时期的异常

(a)、没有继承RuntimeException--抛异常和抓异常

(b)、写代码的时候,就会给你提示错误。这时候我们就需要进行处理,否则,代码无法编译通过。

 

1.7、注意

A、错误信息与我们抓的错误信息要一致

B、try...catch

(a)、可以有多个catch抓不同异常

(b)、如果有一个异常抓的是父类异常,那么他下面的子类异常将无法运行到,会报错

(c)、例如

public static void main(String[] args) {

exeptionMethod_01();

System.out.println("--------");

}

//编译时期的异常

private static void exeptionMethod_01() {

String time = "1990-01-01";

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

try {

format = null;

Date date = format.parse(time);

System.out.println(date);

}catch (ParseException e) {

System.out.println("解析错误");

}catch(Exception e){

System.out.println("空指针异常");

}

}

 

 

 

 

 

2、File

2.1、构造方法

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

B、File(String parent, String child)--根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

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

 

2.2、创建的方法

A、创建文件

(a)、createNewFile

(b)、如果文件不存在并且创建成功返回一个true

(c)、如果文件存在则返回一个true

B、创建文件夹

(a)、mkdir--创建文件夹

(b)、mkdirs--创建多级文件夹

2.3、删除

A、Delete

注意:这个删除功能不走垃圾回收站

2.4、获取

A、public String getAbsolutePath():获取绝对路径

B、public String getPath():将创建File时的路径以字符串的形式返回

C、public String getName():获取名称

2.5、判断功能

A、public boolean isDirectory():判断是否是目录

B、public boolean isFile():判断是否是文件

C、public boolean exists():判断是否存在

 

 

3、IO字节流

3.1、字节流

(1)、字节输入流

A、InputStream-->FileInputStream

(a)、一次读取一个字节

//给的路径必须要存在,因为FileInputStream本身并没有创建文件的功能

FileInputStream fos = new FileInputStream("a.txt");

int by;

while((by = fos.read()) != -1){

/*

 * fos.read()读取

 * 读取之后的结果赋值给by

 * 最后拿by-1比较,看条件是否成立

 */

 System.out.print((char)(by));

}

fos.close();

}

(b)、一次读取一个字节数组

FileInputStream fos = new FileInputStream("ExeptionDemo.java");

byte[] bys = new byte[1024];

int len;//每次读取的长度

while((len = fos.read(bys)) != -1){

 System.out.print(new String(bys, 0, len));

}

fos.close();

}

 

(2)、字节输出流

A、OutputStream-->FileOutputStream

 

(3)、读写文本文件

//封装数据源

FileInputStream fis = new FileInputStream("d:\\mn.jpg");

//封装目的地

FileOutputStream fos = new FileOutputStream("mn.jpg");

//读写数据

//方式1:一次读取一个字节,一次写一个字节(自己练习)

//方式2:一次读取一个字节数组,一次写一个字节数组的一部分

byte[] bys = new byte[1024];

int len;

while((len=fis.read(bys))!=-1) {

fos.write(bys,0,len);

}

//释放资源

fos.close();

fis.close();

(4)、读写图片文件

//封装数据源

FileInputStream fis = new FileInputStream("d:\\窗里窗外.txt");

//封装目的地

FileOutputStream fos = new FileOutputStream("林青霞.txt");

//读写数据

//方式1:一次读取一个字节

// int by;

// while((by=fis.read())!=-1) {

// fos.write(by);

// }

//方式2:一次读取一个字节数组

byte[] bys = new byte[1024];

int len;

while((len=fis.read(bys))!=-1) {

fos.write(bys, 0, len);

}

//释放资源

fos.close();

fis.close();

3.2、字符流

A、字符输入流--Reader

B、字符输出流--Writer

注意:所说的输入输出是指相对于java程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值