目录
一、IO概述
1、什么是IO
我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为 输入input 和 输出
output ,即流向内存是输入流,流出内存的输出流。
Java中I/O操作主要是指使用 java.io 包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做作写
出数据。
2、IO分类
3、IO的流向说明图解
二、字节流
1、字节输出流OutputStream
一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一
样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底
层传输的始终为二进制数据。
1)FileOutputStream
2)写出字节数据
3)数据追加续写
4)写出换行
2、字节输入流InputStream
FileInputStream类
字节流练习:图片复制
package com.dzg.stream.inputstream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Copy {
public static void main(String[] args) throws IOException {
//创建数据源对象
//1指定源数据对象(输入流,将数据从硬盘写入到内存中)
FileInputStream fis = new FileInputStream("G:demo.jpeg");
//2、指定目标数据对象
FileOutputStream fos = new FileOutputStream("copy_demo2.jpeg");
/**
* 3、读取字节流,一个字节一个字节的写入到目标文件中
*/
byte[] bytes = new byte[1024];
int read = fis.read(bytes);
while( read != -1){
fos.write(bytes,0,read);
read = fis.read(bytes);
}
/**
* 4、关闭资源,关闭原则:先开后关、后关先开
*/
fos.close();
fis.close();
}
}
流关闭原则:先开后关、后关先开
三、字符流
1、字符输入流Reader
1)FileReader类
java.io.FileReader 类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
小贴士:
1. 字符编码:字节与字符的对应规则。Windows系统的中文编码默认是GBK编码表。
idea中UTF-8
2. 字节缓冲区:一个字节数组,用来临时存储字节数据。
2、字符输出流Writer
FileWriter类
四、IO异常处理