I/O流(Input输入/Output输出流)
-
流的概述
流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。
Java由数据流处理输入/输出模式,程序从指向源的输入流中读取源中的数据。源可以是文件、网络、压缩包或其他数据源。
输出流的指向是数据要到达的目的地,程序通过向输出流中写入数据吧信息传递到目的地。输出流的目标可以说文件、网络、压缩包、控制台和其他数据输出目标
-
Java中四大抽象类
Java语言定义了许多类专门负责各种方式的输入/输出,这些类都被放在java.io包中。其中,所有输入流都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类;而所有输出流都是抽象类Output(字节输出流)或抽象类Writer(字符输出流)的子类。
-
输入流
数据从数据源到程序。
InputStream类是字节输入流的抽象类(不可以被实例化),是所有字节流的父亲。
该类中所有方法遇到错误时都会引发IOException异常。下面是对该类中的一些方法简要说明:
方法 | 概述 |
read() | 从输入流中读取数据的下一个字节,返回0~255范围内的int字节值。如果因为已经到达流末而没有可用的字节则返回值为-1 |
read(byte[] b) | 从输入流中读入一定长度的字节。并以证书的形式返回字节数 |
mark(int readlimit) | 在输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取的字节数 |
reset() | 将输入指针返回到当前所做的标记处 |
skip(long n) | 跳过输入流上的n个字节兵返回实际跳过的字节数 |
markSupported() | 如果当前流支持mark()/reset()操作koi返回true |
close | 关闭此输入流兵释放与该流关联的所有系统资源 |
3.1 、IO流FileInputStream实例如下:
3.2 使用while 进行IO输入流
3.3 进行转化操作
-
File类的使用
File类的常用方法
-
方法
返回值
说明
getName()
String
获取文件的名称
canRead()
boolean
判断文件是否为可读的
canWrite()
boolean
判断文件是否为可写入
exits()
boolean
判断文件是否存在
length()
long
获取文件的长度(以字节为单位)
getAbsolutePath()
String
获取文件的绝对路径
getParent()
String
获取文件的父路径
isFile()
boolean
判断文件是否存在
isDirectory()
boolean
判断文件是否为一个目录
isHidden()
boolean
判断文件是否为隐藏文件
lastModified()
long
获取文件最后修改时间
File方法的实现
4.1单级目录的创建
此时运行返回 ture 表示在你写的路径已经创建成功一个文件夹
4.2 创建多级文件夹
多级文件夹是指文件夹里面还有文件夹 这个应该不难理解
4.3查看D盘所有文件夹
4.4返回带D盘文件 listFiles()
五、字节流
5.1字节流读取二进制图片
这里在D盘随便放置一张jpg图片,命名 然后就可以在IDEA中读取
5.2输出流进行读取图片,也可以说保存文件
5.3创建缓冲区 进行提高读写效率!!
这里挺重要的,因为缓冲区可以对大文件进行有效读写,毕竟快了很多
以上均为个人观点,希望对大家能有所帮助。