笔记-IO流

File

File类的对象是一个文件或文件目录    声明在java.io包下  File类未涉及到读取和写入内容的操作,完成这些操作需要IO流来完成

创建File类的实例

File(String filePath);  File(String parentPath,String childPath) ; File(File parentFile,String childFile);

常用方法

public String getAbsolutePath();获取绝对路径

public String getParent(); 获取上层目录路径。若无,返回null

public boolean creatNewFile();创建文件。若文件存在,则不创建返回false

public boolean mkdirs();创建文件目录。如果上层目录不存在,一并创建 

public boolean delete();删除文件或文件夹     

要删除一个文件目录,文件目录内不能包含文件或文件目录

IO原理

用于处理设备之间的数据传输    I/O  Input/Output

java中对于数据的传输操作以“流”的方式进行

java.io包下提供了各种“流”类和接口

流的分类

按流向分   输入流 输出流

按数据单位   字节流  字符流

按角色分   节点流 处理流

4个抽象基类

 

 

 

 

访问文件  FileInputStream             FileReader   

     FileOutputStream       FileWriter

 

1、类和流的实例化   2、读写操作 3、关闭资源

对于非文本,使用字节流处理

对于文本,使用字符流处理

处理流: 缓冲流

BufferedInputStream

BufferedOutputStream

BufferedReader

BufferedWriter

作用 提高流的读取和写入速度

提高读写速度的原因,内部提供了一个缓冲区

处理流就是套接在已有流的基础上

 关闭外层流的同时,内层流也会自动关闭

转换流

提供在字节流和字符流之间的转换

InputStreamReader   将InputStream转换成Reader

OutputStreamWriter    将OutputStream转换成Writer

常用转换流来处理文件乱码问题

标准的输入输出流

System.in标准的输入流   默认从键盘输入

System.out 标准的输出流 ,默认从控制台输出

 

 

 打印流

PrintStream  PrinterWriter

 

 

 

 

 

 数据流

DataInputStream   DataOutputStream

用于读取或写出基本数据类型的变量和字符串

读取不同类型的数据的顺序要和放出写入数据的顺序一样

 对象流

ObjectInputStream   ObjectOutputStream

用于存储或读取基本类型数据和对象的处理流。可以把对象写入数据源中,也可以把对象从数据源中还原出来

序列化  用ObjectOutputStream保存基本类型数据和对象的机制

反序列化  用ObjectInputStream读取基本类型数据和对象的机制

ObjectInputStream   ObjectOutputStream不能序列化static和transient修饰的成员变量

序列化的目标   将对象保存到磁盘中,或允许在网络中直接传输对象。

序列化    可以把对象转换成与平台无关的二进制流,从而允许把这种二进制流持久的保存在磁盘上,或者通过网络传输二进制流到另一个网络节点,程序获得二进制流之后,可以将二进制流再恢复成对象 

类要满足以下要求,可以序列化

1、要实现接口  serializable

2、要有序列版本号   serialVersionUID

3、除了当前类需要实现 Serializable接口外,还必须保证类的内部所有属性都可以序列化(默认情况下,基本数据类型都可序列化)。

RandomAccessFile随机存取文件流

可读可写,直接继承的java.lang.Object类   实现了DataInput,DataOutput两个接口

long getFilePointer():获取文件记录指针的当前位置      void seek(long pso):将文件记录指针定位到pos位置

RandomAccessFile作为输出流时,写出到的文件不存在,会在执行的过程中自动创建,如果存在,会将原有的文件数据进行覆盖(默认从头开始)

RandomAccessFile可以有插入的效果

 

 

NIO.2中的Path、Paths、Files类的使用(不熟悉)

java NIO(New IO,Non-Blocking IO)从java1.4引入的一套新的IO API,可代替标准的javaIO API.    NIO支持面向缓冲区的(IO是面向流的)

NIO将以更高效的方式进行文件的读写操作

。。。

 

posted @ 2020-06-17 23:55  white-zz  阅读(106)  评论(0)    收藏  举报