I input 输入(读)
O output 输出(写)
广义上存储介质/设备/容器之间的数据传输就称为IO
内存 硬盘/文件
设备A 设备B
容器 容器
客户端 服务器
java.io包
Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。


Java中对输入输出提供了API------java.io 包
java.io.File类
File类是文件、文件夹和磁盘分区的抽象
File file = new File( 文件路径 );
常用的方法:
--创建
createNewFile() 创建一个新的文件
mkdir() 创建单个文件夹
mkdirs() 创建多级目录
注意:判断文件是否存在 exists()
--删除
delete() 删除文件或目录
注意:先删文件再删目录
--查询
listRoots() 查询磁盘的分区情况
listRoots()[0].listFiles() 获取某个磁盘分区所有文件目录及文件
listRoots()[0].list () 获取某个磁盘分区所有文件目录及文件
listFiles() 查看当前目录下的所有子目录(包含文件)
isFile() 判断是否是文件
isDirectory() 判断是否是文件目录
getParentFile() 获取上级目录
getAbsolutePath() 获取绝对路径
先获取当前文件的绝对路径,在获取上级目录
file.getAbsoluteFile().getParentFile()
length() 文件长度(字节数)
toURI() 获取URI(统一资源管理器)地址(含URL地址)

字节流
IO操作,在计算机中其本质就是传递二进制数和字节。
针对输入输出有2个方向:
OutputStream
InputStream
对输入、输出流java中又提供了两个子类去操作文件:
FileOutputStream
FileInputStream
文件写操作的步骤:
1、[可选]创建File
2、创建FileOutputStream
3、write()方法进行写操作
4、清空缓存区
5、关闭流

文件读操作的步骤:
1、[可选]创建File
2、创建FileInputStream
3、read()方法进行读操作
4、清空缓存区
5、关闭流


注意:
1、 对OutputStream和InputStream之间进行IO操作,也就是涉及文本信息的传递,需要用byte[] 与 String之间转换,而且要注意charset(编码)的统一。
2、 用ByteArrayOutputStream作为存放字节数组的容器
3、 清空缓存区
4、 关闭相应的流
文件拷贝示例代码:

