java中的I/0笔记(1)
java中的流分类:
按方向:输入流和输出流
按数据处理单位:字节流和字符流
字节流:8位01组成的
字符流:由字符组成,2个字节
按功能:节点流和处理流
节点流:“管道”直接连接数据源
处理流:套在其他管道之上的“管道”
所有流类型都位于java.io包内,继承自以下四种抽象流类型:
字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer
可以把流看作连接数据源和程序的管道
继承自InputStream的流都是用来向程序中输入数据,且数据单位为字节(8 bit)
InputStream的基本方法:
1. int read( ) throws IOException
读取一个字节,并以整数的形式返回(0~255)
如果读取出来的是-1,则已经读取到文件末尾
2. int read( byte[ ] buffer ) throws IOException
读取一系列字节,并存储到数组buffer
返回实际读取的字节数,如果读取前已到输入流的末尾,则返回-1
3. int read( byte[ ] buffer , int offset ,int length) throws IOException
从offset开始,读取length个字节
并存储到字节数组buffer
返回读取的字节数,如果读取到输入流的末尾,返回-1
4 void close( ) throwsIOException
关闭流文件释放内存资源
OutputStream的基本方法:
1. void write(int b) throws IOException
向输出流写入一个字节的数据,该字节数据为参数b的低8位
2. void write(byte[ ] b) throws IOException
向输出流写入一个字节数组
3. void write(byte[ ] b, int offset, int length) throws IOException
向输出流写一个字节数组的一部分,从数组的offset开始,长度为length
4. void close( ) throws IOException
关闭流文件释放内存资源
5. void flush( ) throws IOException
将输出流中缓冲的数据全部写出到目的地 良好的编程方式:先写flush(),再写close()
Reader 的基本方法:
1. int read( ) throws IOException
读取一个字符,并以整数返回(0~255)
到输入流的末尾,则返回-1
2. int read (char[ ] cbuf ) throws IOException
读取一系列字符,并存储到一个字符数组buffer
返回实际读取的字符数,如果读取前已到输入流的末尾,返回-1
3. int read(char[ ] cbuf,int offset,int length) throws IOException
读取一系列字符,存储到字符数组buffer
从offset开始,长度为length
返回实际读取的字符数,如果读取前已到输入流的末尾,返回-1
4. void close( ) throws IOException
Writer 的基本方法:
1. void write(int c) throws IOException
向输出流写入字符数据,该字符数据为参数b的低16位
2. void write(char[ ] cbuf) throws IOException
将一个字符类型的数组数据写入输出流
3. void write (char[ ] cbuf,int offset,int length) throws IOException
将一个字符数组数据的一部分写入输出流,从offset开始,长度为length
4. void write(String string) throws IOException
将一个字符串写入到输出流,调用String内部方法toCharArray将自己转换为一个字符数组
5. void write( String string ,int offset, int length) throws IOException
将一个字符串string的一部分写入输出流,从offset开始,长度length
6. void close( ) throws IOException
7. void flush( ) throws IOException
A nice Sunday! 我终于可以做自己的事情,下个月的这个时候,我应该就自由了。 QNMD QRJH