Menu

JavaI/O 系统

0 Comment

JavaI/O 系统

1.JavaI/O 系统概述

A.  输入输出(I/O):指的是计算机与外部世界,或者一个程序与计算机的其余部分之间的接口

B. 流的概念(流:Stream)

流的基本特性:有数据、有方向

2. 流的分类

A.按数据流的方向分:

a. 输入流:从数据源到应用程序(类:InputStream、Reader)

b. 输出流:从应用程序到数据源(类:OutputStream、Writer)

B. 按处理数据的最小单位的不同分

a. 字节流:(最小单位:byte) (类:InputStream、 OutputStream)

b. 字符流:(最小单位:char) (类: Reader 、 Writer)

C. 按流的功能分:

a. 节点流(低级流)

b.  处理流(高级流)

判断一个流是否是高级流:查看该类的构造器,如果类的构造器带有一个已存在的流作为参数,则是高级流

所有I/O操作的步骤:

建立流、读写流、关闭流

3. 文件类(File类)

A. 创建对象:File file = new File(“test.txt”);

4. 字节流:所有面向字节的流类都继承于InputStream类(输入流)或OutputStream类(输出流),这两个类是抽象类,我们可以利用它的子类来完成不同的功能。

A.InputStream类

InputStream in = null;

In = new FileInputStream(“test.txt”);

方法:

close():  关闭输入流

read():从流中读取下一个字节

read(byte[ ]  b): 从输入流中读取一些字节,并存入数组b

read(byte[ ] b, int off, int len):从输入流中读取前len个字节并存入数组b

B.OutputStream类

OutputStream out = null;

out = new FileOutputStream(“test.txt”);

方法:

close():关闭该输出流

write(byte[] b):将 b.length 个字节从指定的字节数组写入此输出流

write(byte[] b, int off, int len) :将指定字节数组中从偏移量 off 开始的 len 个字节写入此输出流

5. 字符流

A.字符输入流Reader:

Reader类中两个常用类:

FileReader:以字符流的形式读取文件,与FileInputStream 用法基本一致

BufferedReader:将流读入缓冲区,然后从缓冲区读取,并且提供了readLine()方法,可以从文本文件中整行的读取数据

Reader r = null;

r = new FileReader(“test.txt”);

B.字符输出流Writer:

Writer类中两个常用类:

FileWriter:以字符流的形式写入文件,与FileOutputStream用法基本一致

BufferedWriter:将缓冲区输出到流

Writer w = null;

w = new FileWriter(“test.txt”);

6. 对象流

A. ObjectInputStream:对象输入流

B. ObjectOutputStream:对象输出流,注意在对象从内存保存到硬盘这个过程中,我们需要先将对象转化成字节流在进行保存,这个过程叫做对象的序列化。只要让对象实现Serializable接口即可,从硬盘读取对象到内存这个过程称为反序列化。

发表评论

电子邮件地址不会被公开。 必填项已用*标注