1.什么是IO流
创建文件,创建目录
拷贝视频,拷贝文件
读取文件中内容信息
读取键盘输入的信息
网络文件传输
2.IO流的分类
字节流:拷贝视频,拷贝文件。因为操作必须精确到字节
字符流:文件中的内容,把内容进行输出
字节流和字符流的实现方式:输入流和输出流
3.什么是输入流和输出流
文件的拷贝,它需要完成一个动作的实现。
第一步:选中源文件(对应程序中的输入流)
第二步:拷贝操作(IO流中read和write的操作)
第三步:选择拷贝的地方,目标文件(对应程序中的输出流)
难点:不知道输入流什么时候用,也不知道输出流什么时候用
4.IO流要学习的内容
IO流的所有应用都在java API文档中 java.IO包中
文件操作,java.IO.File类
字节流:InputStream,OutputStream
字符流:Reader,Writer
5.File类
File类的结构 构造方法:只提供带参数的构造方法
File(File parent,String child):、在已有的路径下面去创建一个文件或者一个目录
File(String pathname):在给定的路径中创建一个文件或一个目录
File(String parent, String child):在已有的路径下面去创建一个文件或者一个目录
File(URI uri)
普通方法:
Boolean createNewFile():创建一个文件
Boolean delete():删除文件或目录
Boolean exists():文件或目录是否存在
String getAbsolutePath():返回文件或者目录的绝对路径
File getAbsoluteFile():返回文件和目录的绝对路径,但是这个绝对路径是由File对象来表示
String getName():返回文件或者目录的名称
File getParentFile():返回父级目录对象
String path():返回文件或者目录的路径
Boolean isDirectory():判断是否是目录
Boolean isFile():判断是否是文件
Long length():返回文件大小
File[] listFiles():返回当前目录下的文件或目录
Boolean mkdirs():创建多级目录
6.File类的应用
案例:创建目录
先要创建File类的对象
调用mkdirs
测试是否创建好目录(利用JUnit来测试)
案例:创建文件
先创建File类对象、
调用createNewFile
案例:删除目录
先创建File类对象
调用delete,注意如果有文件的存在,则目录删除不掉
案例:获取目录下文件(一级目录)
先要创建File对象
调用listFiles
案例:获取文件的大小
创建File对象
判断是否是文件
计算文件的大小
案例:获取文件安的路径
getPath
getAbsolutePath
getAbsoluteFile
7.任务
将某一个盘符下的所有文件找到,同时输出是目录还是文件,且这个盘符的大小是多少
思路:采用递归方法来完成目录遍历
什么是递归:方法内部调用自己的方法,方法具备循环的特性
案例:完成1+2+3+….+100的运算,采用递归算法完成
案例:利用递归将某一个目录下的所有文件和子目录进行输出
案例:能够遍历出所有文件,则计算目录的大小是多少
8.字节流
字节流的结构
字节的输入流:InputStream
字节的输出流:OutputStream
重点如下:
InputStream,OutputStream都是抽象类
输入流的方法:read(),close(),available(),这些方法主要是为了读取数据,关闭IO流,计算文件大小
输出流的方法:write(),close(),flush(),这些方法主要是为了写数据,关闭IO流,刷新缓存
9.掌握IO流的用法
10.文件拷贝
实现文件拷贝的思路:
选择使用什么类型的流(字节流,字符流)
因为文件拷贝是一种二进制流, 拷贝的过程通过读取字节完成拷贝工作
所以我们选择字节流
11.字符流
输入流:reader,抽象类
输出流:writer,抽象类
读取数据的时候通过read
写入数据的时候通过write
12.掌握字符流的用法
13.读取文件中内容
案例:读取txt文件中内容并输出到控制台
读取txt文件中内容使用reader
读出来的内容写入到Console,我们采用System.out.printIn(…)
14.写内容到文件里面
案例:先读取到txt文件的内容,然后将此内容写入到word文档内
输入流: BufferedReader
输出流:BufferedWriter
请关注“知了堂学习社区”,地址:http://www.zhiliaotang.com/portal.php