JAVA学习笔记整理九(IO)

来源:互联网 发布:生死狙击矩阵怎么得 编辑:程序博客网 时间:2024/05/21 23:34

File类——操作文件的类

1.    一个File类的对象,表示了磁盘上的文件或目录。

2.    File类提供了与平台无关的方法来对磁盘上的文件或目录进行创建或删除等常用操作。

3.    不能通过File类的对象存取文件的内容

JAVA文件操作工具类

//写一个文件工具类,可以统计某个文件或文件夹的大小,可以删除一个文件或目录,可以拷贝一个目录

流—Stream概述

1.    在程序中所有的数据都是以流的方式来进行传输或保存的,程序需要数据时要使用输入流来读取数据,而程序需要将一些数据保存起来的时候,就要使用输出流。

2.    流的操作主要有字节流和字符流两大类,两类都有输入和输出操作。字节流输出数据主要使用OutputStream类完成,输入使用InputStream类完成。字符流输出数据主要使用Writer类完成,输入使用Reader类完成。

3.    主要操作流程

 

字节流

字节流主要操作byte型类型数据,以byte数组为准。

1.    字节输出流:OutputStream

2.    字节输入流:InputStream

字符流

程序中一个字符等于两个字节

1.    字符输出流:Writer

2.    字节输出流:Reader

字节流与字符流区别

字节流在操作时是本身直接进行操作,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件。若是字节流未关闭,依旧可以输出内容,而字符流则不行,除非使用Writer类中的flush()方法

BufferedReader类:用于从缓冲区中读取内容,所有输出的字节数据都将放在缓冲区中,且只能接受字符输入流的实例,所以若为字节流,则必须使用InputStreamReader转换为字符流。

转换流

1.    OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即将一个字符流的输出对象变为字节流的输出对象

2.    InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象


内存操作流

输入输出位置可以设置在文件上,而内存操作流ByteArrayOutputStream、ByteArrayInputStream则可将输出输入的位置设置在内存上


管道流

用于线程间的通信。一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。要使管道流有用,必须同时构造管道输入流和管道输出流

打印流


数据操作流

可以按照一定的格式将数据输出,再通过数据输入流按照一定的格式将数据输入,方便地对数据进行处理

对象序列化

1.  把一个对象变为二进制的数据流的一种方法

2.  一个对象要想能够实现序列化,必须实现Serializable接口

3.  当一个对象被序列化时,只保存对象的非静态成员变量,不能保存任何的成员方法和静态的成员变量

4.     实现序列化的类的对象是可以经过二进制数据流进行传输的,必须依靠对象输出流(ObjectOutputStream)和对象输入流(ObjectInputStream)

   保存的文件为二进制数据,且不可直接修改,因为会破坏其保存格式




0 0
原创粉丝点击