Java基础进阶Day09

Java基础进阶Day09

课程大纲

1、IO概述 ---------------------------> 理解 (IO流的基本知识点)
2、四大父类 -------------------------> 理解 (通用方法)
3、增强流 ---------------------------> 重点 (读写数据)
4、IO异常处理 -----------------------> 理解  

第一章 IO概述

1、IO思想
A. 输入in 	读取 read    文件 -> Java程序
B. 输出out 	写出 write   Java程序 -> 文件
2、四大父类(将所学类绘制在族谱图中)
InputStream 	 字节输入(子类代表 FileInputStream)
OutputStream	 字节输出(子类代表 FileOutputStream)
Reader			字符输入(子类代表 FileReader) ->(增强 BufferedReader)
Writer			字符输出(子类代表 FileWriter) ->(增强 BufferedWriter)
3、字节文件和字符文件
A.字节文件:  
		采用windows自带记事本打开全是乱码(图片,音乐,视频,安装文件exe等)
            
B.字符文件:  
		采用windows自带记事本打开不是乱码(文本文件...)
            
C.编码表:
        作用:  根据本地语言环境,将字节数字,转换成为对应语言文字符号
        理解:  字符文件 = 字节文件 + 编码表
        常见编码:
            ASCII 		美国信息交换标准代码
            GBK			汉字内码扩展规范
            ISO-8859-1 	欧洲编码
            UTF-8		万国码
4、IO操作步骤
A.创建对象
B.读写数据
C.释放资源

第二章 四大父类

1、OutputStream方法
A.写数据
	public abstract void write(int b) //写入数字,如果写入到文本文件,由于编码表原因,转换为字符
	public void write(byte[] b)  //写字节数组
	public void write(byte[] b, int off, int len)   //写入字节数组一部分
	
B.刷新数据
	public void flush()  //字节流不刷新可以进入文件,字符流需要刷新才能进入文件(计算机底层是字节)
	
C.关闭方法(俗称"释放资源")
	public void close()  //释放资源.包含了刷新功能
2、InputStream方法
A.读数据
	public abstract int read()  //读取一个字节,返回的是字节
	public int read(byte[] b)  //读取一个字节,返回的是字节数组的长度
	
B.关闭方法(俗称"释放资源")
	public void close()  //释放资源.包含了刷新功能
3、Writer方法
A.基本方法
	与 OutputStream 方法类似.(OutputStream有的Writer也有)
    
B.额外方法
	public void write(String str) 					//写入字符串
	public void write(String str, int off, int len)  //写入字符串的一部分			
4、Reader方法
A.读数据
	public int read()  			 //读取一个字符,返回的是字符数组对应的数字
	public int read(char[] cbuf)  //读取一个字符,返回的是字符数组的长度
	
B.关闭方法(俗称"释放资源")
	public void close()  //释放资源.包含了刷新功能
5、注意点
A.换行写入 
	windows: 	\r\n
	mac:		\r
	linux:		\n
	
B.追加写入
	FileWriter fos = new FileOutputStream("路径", true); 	 //表示追加写入
	FileWriter fw = new FileWriter("路径",true); 			//true表示追加写入
6、综合案例(文件的复制)
A. 二进制文件复制(图片的复制操作) 分别采用字节流 和 字符流
B. 文本文件的复制方式 分别采用字节流 和 字符流
C. 万能的文件复制方式(工具方法.字节流)

第三章 增强流

1、增强流 读取 BufferedReader
A. 构造  BufferedReader br = new BufferedReader(new FileReader("路径"));
B. 特有  String line = br.readLine();  //一次读取一行数据
2、增强流 写入 BufferedWriter
A. 构造  BufferedWriter bw = new BufferedWriter(new FileWriter("路径"));
B. 特有  bw.newLine();	//写入换行符,兼容不同操作系统
3、综合案例
A. 缓冲流复制文本文件
B. 将集合数据写入到文本文件(字符串 和 自定义对象)
C. 将文本文件数据读取到集合(字符串 和 自定义对象)

第四章 IO异常处理

1、JDK1.7以后
try ( FileWriter fw = new FileWriter("fw.txt"); ) {
    // 写出数据
    fw.write("黑马程序员"); //黑马程序员
} catch (IOException e) {
    e.printStackTrace();
}
2、JDK1.9以后(略)

猜你喜欢

转载自blog.csdn.net/weixin_43904518/article/details/85175591