为进行数据的输入/输出操作,Java中把不同的输入/输出源(键盘、文件、网络连接等)抽象表述“流”(Stream)。
2、Java中流的分类(1)按照流的方向:
输入流 – >只能从中读取字节数据,而不能向其写出数据 输出流 – >只能向其写入字节数据,而不能从中读取数据
(2)按照流处理数据类型:
字节流 – >用于(原始的二进制byte流)处理字节数据 字符流 – >用于处理Unicode字符数据的字符流
(3)按照流实现的功能:
节点流 – >可以从/向一个特定的IO设备(如磁盘、网络)读/写数据的流,节点流也被称为低级流。 处理流 – >实现对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读/写功能的流,称为处理流,处理流也被称为高级流。
3、流中的数据(1)对于byte流的操作叫输入流(InputStream)和输出流(OutputStream)
(2)对于Unicode字符流的操作叫读者(Reader)和写者(Writer)
(3)通常,流(stream)指byte流;Reader和Writer指Unicode字符流。
所有IO流都抛出IOException异常
二、字节流1、以单字节(byte)处理字符,使用InputStream和OutputStream类的衍生类处理。InputStream和OutputStream都是抽象类,所以不能直接使用,要使用它们的衍生类。 2、InputStream(1)三个基本的read()方法
int read():读取一个字节,并将它返回。 int read(byte[] buffer):将数据读入一个字节数组。 int read(byte[] buffer, int offset, int length)将数据读入一个字节数组,放到数组的offset指定的位置开始,并用length来指定读取的最大字节数。
(2)其他方法
void close():关闭流。 int available():返回可以从中读取的字节数。 long skip(long n):在输入流中跳过n个字节,将实际跳过的字节数返回。 boolean markSupported():判断流是否支持标记功能。 void mark(int readLimit):在支持标记的输入流的当前位置设置一个标记。 void reset():返回到流的一个标记。注意必须流支持标记功能。
3、OutputStream(1)三个基本的write()方法
void write(int c):写一个字节到流中。 void write(byte [] buffer):将字节数组中的数据写入到流中。 void write(byte[] buffer, int offset, int length):将字节数组中offset开始的length个字节写入到流中
(2)其他方法
void close():关闭输出流。 void flush():人工清空输出缓冲区,将缓冲中的字节立即发送到流中,同时清空缓冲。
三、字符流1、由于对采用Unicode格式保存的信息来说,用以字节为基础的数据流来处理它们显得特别不方便,所以构造单独的类专门处理Unicode字符,这些类都是从Reader和Writer衍生出来的。这些类的对象操作均以双字节Unicode字符为基础,而不是以单字节的字符为基础。2、Readerint read():用于从流中读出一个字符,并将它返回。 int read(char [] buffer):将从流中读出的字符放到字符数组buffer中,返回读出的字符数。 int read(char[] buffer, int offset,int length):将读出的字符放到字符数组的指定offset开始的空间,每次最多读出length个字符。
(2)其他方法
void close():关闭Reader流。 boolean ready:判断流是否已经准备好被读取。 skip(long n):跳过指定的n个字符 boolean markSupported() :和InputStream中的markSupported方法类似。 void mark(int readAheadLimit):和InputStream中的mark方法类似。 void reset():和InputStream中的reset方法类似。
3、Writer(1)基本的write()方法
void write(int c):将参数c的低16位组成字符写入到流中。 void write(char[] buffer):将字符数组buffer中的字符写入到流中。 void write(char[] buffer, int offset,int length):将字符数组buffer中从offset开始的length个字符写入到流中。 void write(String string):将String字符串写入到流中。 Void write(String string,int offset,int length):将字符String中从offset开始的length个字符写入到流中。
(2)其他方法
void close():和OutputStream的close方法类似。 void flush():和OutputStream的flush方法类似。文件(File) 存储(memory):如数组、字符串对象 管道(pipes):指从一个进程或线程到另一个进程或线程的通道。一个线程的输出管道连接到另一个线程的输入管道。FilterXxx这样的类是抽象类,不能被直接使用,可以使用子类实现你自己的方法。 FilterInputStream和FilterOutputStream以及它们的子类要同其它流对象一起使用。 当创建Filter流时,必须指定它将要连接的流。boolean readBoolean( ) byte readByte( ) char readChar( ) int readInt( )void writeBoolean(boolean b) void writeByte(byte b) void writeChar(char c) void writeInt(int i)RandomAccessFile(java.io.File f, String mode) RamdomAccessFile(String file, String mode)就爱阅读www.92to.com网友整理上传,为您提供最全的知识大全,期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2016/12-07/14002080.html