第十四周总结 Io之文件流
I/O相关 输入/输出 流(数据流动)
数据流动的方向 读数据(输入input) 写数据(输出output)
文件流 字符流 数据流 对象流 网络流....
1.什么叫文件
一种电脑的存储方式
文件有不同的格式 .txt .doc .ppt .mp4 .jpg .rar ...
文件夹?---目录路径
File是一个类
File----->与电脑上的文件或文件夹产生一 一对应的的映射关系
1.java.io包中
2.文件或目录路径名的抽象表示形式
3.File与真实硬盘中的文件和文件夹 不是一个东西
File是在内存的一个对象<---映射--->硬盘上的文件或文件夹
4.File类中的常用方法
canRead() canWrite() isHidden() isFile() isDirectory
length()获取文件中字节的个数
lastModified()获取文件最后的修改时间---->毫秒值
*String path = getAbsolutePath() 获取文件的绝对路径 D://test//Test.txt
绝对路径<-->相对路径
绝对路径可以通过完整的字符串 定位盘符 文件夹 文件
相对路径没有盘符的写法 当前工程()所在的位置去找寻
*String name = getName()获取文件的名字 Test.txt
*boolean = createNewFile() 创建新的文件
*boolean = mkdir 创建新的文件 外层没有 不能创建
*boolean = mkdirs 创建新的文件夹 外层没有 可以自动创建
*String pname = getParent() 获取当前file的父亲file名字
*File file = getParentFile() 获取当前file的父亲file对象
String[] names = list() 获取当前file的所有儿子名字
*File[] files = listFile() 获取当前file的所有儿子对象
*boolean = delete() 删除文件或空的文件夹 不能删除带元素的文件夹
2.什么叫文件流 做什么
读取文件中的内容 向文件写内容
文件输出流 文件输出流
字节型文件输入流 字节型文件输出流
字符型文件输入流 字符型文件输出流
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 = availble(); 返回流管道中还有多少缓冲的字节数
*skip(long n) 跳过几个字节 读取
多线程----> 利用几个线程同时读取文件
10000字节 5个小人同时读取
1-2000 2001-4000 4001-6000 6001-8000 8001-10000
*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中关闭
available();多少字节缓存 flush();
skip(long count)
字符型文件流
FileReader FileWriter
只能操作纯文本文件(文件右键打开方式 记事本打开 能看懂)
.txt
FileReader
1.Java.io包
2.继承 InputStreamReader Reader
3.构造方法
read()
read(char[])
FileWriter
1.java.io包
2.继承 OutputStreamWrite Writer
3.构造方法
带file参数 带file,boolean
带String参数 带String,boolean参数
4.常用
write(int)
write(char[])
write(string)
flush close