JAVA语言编程教案
(第9-15章)
第九章输入输出
输入输出
流(Stream):是对输入输出的总称或者叫抽象,可以指任何输入输出设备,如键盘、屏幕、打印机、文件等,数据从一个地方运动到另一个地方就像水的流动一样。
流的分类:
1、从输入输出方面分:
输入流:InputStream、Reader
2)输出流:OutputStream、Writer
2、按字节分:
1)八位流:InputStream、OutputStream
2)十六位流:Reader、Writer
流在功能上的分类
1、节点流(node stream):基本的流
直接提供输入输出功能的流是node stream:
1)用于文件输入输出的流
八位字节流:FileInputStream、FileOutStream
十六位字节流:FileReader、FileWriter
2)用于内存数组的流
八位字节流:ByteArrayInputStream、ByteArrayOutputStream
十六位字节流:CharArrayReader、CharArrayWriter
3)用于字符串的流
八位字节流:没有对应的类
十六位字节流:StringReader、StringWriter
4)管道流
八位字节流:PipedInputStream、PipedOutputStream
十六位字节流:PipedReader、PipedWriter
2、处理流(Processing stream)
用于增强节点流的功能,可看作是高级的流。
1)提高输入和输出效率的缓冲流
八位字节流:BufferedInputStream、BufferedOutStream
十六位字节流:BufferedReader、BufferedWriter
2)具有过滤功能的流
八位字节流:FilterInputStream、FilterOutStream
十六位字节流:FilterReader、FilterWriter
3)对象序列化的流
八位字节流:ObjectInputStream、ObjectOutStream
十六位字节流:没有对应的类
4)八位转换十六位的流
八位字节流:没有对应的类
十六位字节流:InputStreamReader、OutStreamWriter
5)用于数据转换的流
八位字节流:DataInputStream、DataOutStream
十六位字节流:没有对应的类
6)打印流
八位字节流:PrintStream
十六位字节流:PrintWriter
除此之外还有计数的流、带有Pushback缓冲的流等。
InputStream类
1、InputSteam类是八位面向字节输入流的父类,他有很多子类。
InputStream方法:
1)三个基本的read()方法
int read()
int read(byte [])
int read(byte[], int ,int )
简单读方法返回一个int值,它包含从流里读出的一个字节或者-1,其中后者表明文件结束。其它两种方法将数据读入到字节数组中,并返回所读的字节数。第三个方法中的两个int参数指定了所要填入的数组的子范围。
2)其他方法
void close():关闭流。
int available():这个方法报告立刻可以从流中读取的字节数。
skip(long):这个方法丢弃了流中指定数目的字符。
boolean markSupported()
void mark(int)
void reset(int)
如果流支持“回放”操作,则这些方法可以用来完成这个操作。如果mark()和reset()方法可以在特定的流上操作,则markSupported()方法将返回ture。mark(int)方法用来指明应当标记流的当前点和分配一个足够大的缓冲区,它最少可以容纳参数所指定数量的字符。在随后的read()操作完成之后,调用reset()方法来返回你标记的输入点。
本节重点介绍其子类FileInputStream。
阅读下面的程序:
建立FileInputStream流对象:
FileInputStream in = new FileInputStream( “d:/javacode/”);
使用FileInputStream类提供的方法read(),他读入一个字节并且返回该字节,其返回值为int型,若到了文件尾,他返回-1
2、注意事项
1)有关输入输出的方法几乎都要捕获异常
2)while的循环条件使用
【JAVA语言】JAVA语言编程教案 来自淘豆网m.daumloan.com转载请标明出处.