Java——IO流(上)

目录

 

阐述

try...catch异常处理的流程

File类的功能

IO流的应用场景和分类

课后作业

File类创建、删除、获取功能

FileOutputStream的三种方式写数据

追加写入和换行

复制文本文件或复制图片

别忘了关闭流,释放资源


阐述

try...catch异常处理的流程

try...catch的写法为:try{可能出现异常的代码}catch(异常类名 变量名) {异常 的处理代码}

程序从try开始执行,出现异常就跳转到catch里执行。该语句执行完毕后,程序还可以继续向下执行。

拓展知识

try...catch...finally:finally后面跟花括号,里面写不管有没有异常都执行的代码,通常用于关闭流来释放资源。

try-with-resource:这是JDK1.7出来的新特性,是一种语法糖,可以自动关闭流。写法为try(创建需要自动关闭的资源) {可能出现异常的代码}catch(异常类名 变量名) {异常 的处理代码},这样不需要再写final{}了。被自动关闭的资源需要实现Closeable接口或AutoCloseable接口,只有这两个接口才能自动调用close()关闭资源。

语法糖:指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。通常使用语法糖能增加程序的可读性,从而减少程序代码出错的机会。

File类的功能

1.创建 目录、文件

2.获取 文件名、(相对)路径、绝对路径

3.删除 目录、文件

4.判断 是否存在、是否是目录、是否是文件

IO流的应用场景和分类

常见应用:文件的 复制、上传、下载

分类:按类型分字符流和字节流;按流向分输出流和输入流

课后作业

File类创建、删除、获取功能

		File file = new File("d:\\a.txt");
		File dirFile = new File("d:\\pDir\\sDir");
		
		file.getAbsoluteFile();
		file.getPath();
		file.getName();
		
		file.delete();
		dirFile.delete();

FileOutputStream的三种方式写数据

		//一次写一个字节
		fos.write(4);
		//一次写一个字节数组
		byte[] arr = {1,5,8,33};
		fos.write(arr);
		//一次写一个字节数组的一部分
		fos.write(arr, 2, 2);

追加写入和换行

		//第二个参数默认false,重新写入;true是追加写入
//		FileOutputStream fos = new FileOutputStream("a.txt");
		FileOutputStream fos = new FileOutputStream("a.txt", true);

		//换行
		fos.write("\r\n".getBytes());

复制文本文件或复制图片

		FileInputStream fis = new FileInputStream("b.txt");			
		//一次读取一个字节
		int by;	//用来记录每次读取的数据
		while ((by = fis.read()) != -1) {
			fos.write(by);
			System.out.println((char) by);			
		}
		//一次读取一个字节数组
		byte[] b = new byte[1024];	//定义一次最多可读的字节数组
		int len;	//用来记录读取到的有效字节的个数;声明局部变量,可以不立即初始化,但是调用前必须赋值
		while ((len = fis.read(b)) != -1) {
			fos.write(b, 0, len);
			System.out.println(new String(b, 0, len));			
		}

别忘了关闭流,释放资源

		fis.close();
		fos.close();

猜你喜欢

转载自blog.csdn.net/qq_40995238/article/details/112066735