java中IO概述总结

1.File类

(1)File类主要用于文件和目录的创建,文件的查找和删除等

//通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
File f = new File(String pathname);

(2)常用方法

//返回由此抽象路径名表示的文件或目录的名称。
public String getName();

//返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null。
public String getParent();

//判断是否是一个目录
public boolean isDirectory()

//判断是否为文件
public boolean isFile();

//获取文件的长度(字节数)
public long length();

// 创建新文件,成功返回true 必须捕捉异常
public boolean createNewFile() throws IOException

//删除文件
public boolean delete();

//把目录中的文件和目录的名称所组成字符串数组
public String[] list();

//将目录下的子目录及文件的实例返回到File数组中
public File[] listFiles();

2.输入流与输出流

(1)输入流:往程序中读

(2)输出流:往程序里面写

InputStream和OutStream都为字节流,可以读写二进制文件,处理单元为1个字节

Reader和Writer都是字符流,主要处理字符或字符串,处理单元为一个字符

3.字符流与字节流

 

 字节流中常用类:字输入流:FileInputStream 

                              字输出流:FileOutputStream 

字符流中常用类: 字输入流:FileReader

                              字输出流:FileWriter

4.输入输出字节流

(1)InputStream的基本方法:

int read( ) throws IOException

每次调用 read() 方法,它从输入流读取一个字符并把该字符作为整数值返回。 当流结束的时候返回 -1。该方法抛出 IOException。

(2)OutputStream的基本方法

void write(int byteval) throws IOException

将一个字节类型的数组中的从指定位置(off)开始的 len个字节写入到输出流

void write(byte[] b, int off, int len) throws IOException

5.输入输出字符流

(1)Reader 的基本方法

int read() throws IOException

读取一系列字符并存储到一个数组buffer, 返回实际读取的字符数,如果读取前 已到输入流的末尾返回-1

int read( char[] bchar) throws IOException

关闭void close() throws IOException

(2)Writer的基本方法

void write(int c) throws IOException

一个字符类型的数组中的数据写入输出流

void write( char[] bchar) throws IOException

将一个字符类型的数组中的从指定位置(off set)开始的 length个字符写入到输出流

void write( char[] bchar, int off set, int length) throws IOException

6.节点流与处理流

节点流:如果流封装的是某种特定的数据源,如文件,字符串,字符串数组等,称为节点流

处理流:如果流封装的是其他流对象,称为处理流。处理流提供了缓冲功能,提高了读写效率

7.Print打印流

只有输出而没有输入,分为字节打印流和字符打印流

字符打印流可以打印各种类型的数据  PrintWriter

8.对象输入输出流

(1)对象的输出流:ObjectOutputStream,将指定的对象写入到文件的过程,也就是对象序列化

用writeObject()方法可以直接将对象保存到输出流中

(2)对象的输入流:ObjectInputStream,将指定序列化好的文件读出来的过程,对象反序列化

用readObject()方法可以直接读取一个对象

(3)当一个类的对象需要被序列化时,首先要实现Serializable接口,实现后会隐式的在类中生成一个不重复的序列化编号,隐式的编号,会在类修改后重新生成一个编号,在反序列化时 存在对象与类对应不上

所以被序列化对象的类必须要实现Serializable接口,表名该类可被序列化,在类中生成一个编号,比如,

显示的生成一个序列化编号,即使类的信息发生变化 也不会修改
private static final long serialVersionUID = 519144064627062017L;

(4)transient关键字    默认情况下当执行了对象序列化的时候会将类中的全部属性的内容进行全部的序列化操作, 如果并不需要序列化的处理,这个时候就可以在属性的定义上使 用transient关键字来完成了。 如  private transient int num;

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值