【Java高级】3.文件与流

Java中对文件的管理,通过java.io包中的File类实现

Java对文件的管理,主要针对文件或者目录路径名的管理:

      文件的属性信息

      文件的检查

      文件的删除等

      不包括文件的访问

File类构造方法:File 变量名=new File(String Pathname);

          通过将给定路径名字符串转换成抽象路径名来创建一个新的File实例

        File 变量名=new File(URI uri);

           通过给定File的uri转换成抽象路径名来创建一个新的File实例

        File 变量名=new File(String parent,String child);

        File 变量名=new File(File parent,String child);

D:/temp  这种路径书写方式可以跨平台使用

:Stream代表程序中数据的流通,Java中对于数据的输入输出操作是以流的方式进行的

  Java语言中,控制数据流的类都放在java.io包里

数据流:一串连续不断的数据的集合

    输入流:流入程序的数据

    输出流:流出程序的数据

    从输入流读取数据到内存,输出流流出数据到文件或显示

流的分类:流的方向:输入流、输出流

       处理单位:字节流(只能按照字节读取和存入)、字符流

       功能:节点流、处理流

Java.io包中的两大继承体系,byte字节流处理为主的Stream类,字符流处理为主的Reader/Writer

InputStream、OutputStream、Reader、Writer这四个类(抽象类),是这两大继承体系的父类

字节输入流层次结构图

InputSteam类方法

字节输出流层次结构图

OutputStream类方法

字符输入流层次结构图

Reader类常用方法:同字节流

字符输出流层次结构图

Writer类方法:

节点流类:从一个特定数据源(节点)读写数据(文件、内存)的类

      这些节点类跟数据源或数据目的地做直接连接用的

      文件流 数组流 字符串流(字节流没有这种节点类) 管道流

访问文件可以用节点类中的FileXXX来访问

处理流

    连接:在已存在的流智商,通过对数据的处理为程序提供更为强大的读写功能

    处理流类的构造函数,都必须接收另外一个流对象作为参数

处理流类

缓冲流:Buffered对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了新方法,默认32字节

对象序列化:将对象转换成字节序列的过程

    应用:永久保存对象,在网络中传递对象,在进程间传递对象

反序列化:根据字节序列恢复成对象的过程

Serializable接口:只有实现了Serializable接口的对象才可以被序列化工具存储或恢复

         没有定义任何属性和方法,他只是用来表示类可以被序列化

Externalizable接口:可以让需要序列化的类实现Serializable接口的子接口

          该接口表示实现该接口的类在序列化中由该类本身控制信息写入或读出

对象序列化的条件:该对象类必须实现Serializable接口

           如果该类有直接或间接的不可序列化的父类,那么该父类必须有一个默认的构造器,该派生类必须负责将其基类的数据写入流中

Transient关键字:该关键字修饰的属性不进行序列化操作,起到一定消息屏蔽的作用

         被该关键字修饰的属性会被正常的创建,但被系统赋予默认值,int为0,String为null

posted @ 2017-10-20 08:37  chain155  阅读(81)  评论(0)    收藏  举报