javaIO

Java流式输入/输出原理:

1.在java程序中,对于数据的输入输出操作以“流”(stream)方式进行;J2SDK提供了各种的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入输出数据。

文件—————>00101.....<—————程序

输入/输出流的分类:

一:java.io包中定义了多个流类型来实现输入/输出功能。

1.按数据流的方向不同可以分为输入和输出流;

2.按处理数据单位不同可以分为字节流和字符流;

3.按照功能不同可以分为节点流和处理流。

二:J2SDK所提供的所有流类型位于java.io内部分别继承自一下四种抽象流类型

字节流字符流
输入流InputStreamReader
输出流OutputStreamWriter

1.节点流和处理流:节点流为可以从一个特定的数据源(节点)读入数据;处理流是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。

三:节点流类型

类型字符流字节流
File(文件)

FileReader

FileWriter

FileInputStream

FileOutputStream

Memory Array

CharArrayReader

CharArrayWriter

ByteArrayInputStream

ByteArrayOutputStream

Memory String

StringReader

StringWriter

-
Pipe(管道)

PipeReader

PipeWriter

PipeInputStream

PipeOutputStream

四:处理流类型

处理类型字符流字节流
Buffering

BufferedReader

BufferedWriter

BufferedInputStream

BufferedOutputStream

Filtering

FilterReader

FilterWriter

FilterInputStream

FilterOutputStream

Converting between

bytes and character

InputStreamReader

OutputStreamWriter

Object

Serialization

ObjectInputStream

ObjectOutputStream

Data conversion

DataInputStream

DataOutputStream

Counting

LineNumberReader

LineNumberInputStream
Peeking aheadPusbackReaderPusbackInputStream
PrintingPrintWriterPrintStream

五:缓冲流:缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。缓冲流常用的构造方法:

BufferedReader(Reader in);

BufferedWriter(Writer out);

BufferedInputStream(InputStream in);

BufferedOutputStream(OutputStream out).

1.BufferedReader提供了readerLine方法用于读取一行字符串(以\r或\n分隔);

2.BufferedWriter提供了newLine用于写入一个行分隔符;

3.对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush方法将会使内存中的数据立刻写出。

六:转换流

1.InputStreamReader和OutputStreamWriter用于字节数据到字符数据之间的转换;

2.InputStreamReader需要和InputStream"套接“;

3.OutputStreamWriter需要和OutputStream"套接”;

4.转换流在构造时可以指定其编码集合。

七:数据流

1.DataInputStream和DataOutputStream分别继承自InputStream和OutputStream,它属于处理流,需要分别"套接“在InputStream和OutputStream类型的节点流上;

2.DataInputStream和DataOutputStream提供了可以存取与机器无关的java原始类型数据;

3.DataInputStream和DataOutputStream的构造方法为:

DataInputStream(InputStream in);

DataOutputStream(OutputStream out)

八:Print流:

1.PrintWriter和PrintSteam都属于输出流,分别针对于字符和字节;

2.PrintWriter和PrintSteam提供了重载的print

3.Prinln方法用于多种数据类型的输出;

4.PrintWriter和PrintSteam的输出操作不会抛出异常,用户通过检测错误状态获取错误信息;

5.PrintWriter和PrintSteam有自动flush功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值