递归----方法调用
File类的对象<----->本地硬盘文件
查看属性
创建新的文件 新的文件夹
查看父元素目录
文件夹的遍历 删除
file对象不能操作文件中的内容-------->通过流I/O的方式来完成
流按照方向(功能)来区分
in(读取) out(写入)
操作的目标来区分
文件流 数组流 字符串流 数据流 对象流 网络流
学习文件流--->
顾名思义 读取文件中的信息in 将信息写入文件中out
文件流按照读取或写入的单位(字节数)大小来区分
字节型文件流(1字节)
FileInputStream/FileOutputStream
字符型文件流(2字节--1字符)
FileReader/FileWriter
容器
1.变量 只能存一份
2.数组 存储好多个 数据类型统一
3.集合 存储好多个 存储后个数还能改变 泛型---数据类型统一
如上三个都是Java中的类型(对象-->内存)
都存储在内存中 程序执行完毕 虚拟机停止的时候 内存空间就回收啦
数据都是临时性存储的
4.文件 存储好多信息
文件是存储在硬盘上的--->永久性保存
数据虽然是安全了
文件毕竟不在内存中 需要通过IO操作文件 JDBC
字节型文件输入流
FileInputStream
1.包 java.io
2.了解一下继承关系 InputStream类 字节型输入流的父类
3.创建对象
调用一个带File类型的构造方法
调用一个带String类型的构造方法
4.常用方法
int code = read();
每次从流管道中读取一个字节 返回字节的code码
int count = read(byte[])
每次从流管道中读取若干个字节 存入数组内 返回有效元素个数
int count = available(); 返回流管道中还有多少缓存的字节数
skip(long n) 跳过几个字节 读取
多线程--->利用几个线程同时读取文件
10000字节 5个小人同时读取
1-2000 2001-4000 4001-6000 6001-8000 8001-10000
D当做服务器 E当做客户端
close()将流管道关闭---必须要做 最好放在finally里
注意代码的健壮性 判断严谨
字节型文件输出流
FileOutputStream 将数据写入文件中
1. java.io
2.继承OutputStream 所有字节型输出流的父类
3.创建对象
调用一个带File参数 还有File boolean重载
调用一个带String参数 还有String boolean重载
4.常用方法
write(int code); 将给定code对应的字符写入文件 '='
write(byte[]) 将数组中的全部字节写入文件 getByte()
flush(); 将管道内的字节推入(刷新)文件
close(); 注意在finally中关闭