《JAVA程序设计:第14章 Java流式IO编程》由会员分享,可在线阅读,更多相关《JAVA程序设计:第14章 Java流式IO编程(14页珍藏版)》请在金锄头文库上搜索。
1、第十四章JavaJava流式流式I/OI/O编程编程 本章内容java流式输入流式输入/输出原理输出原理java基本基本I/O流类型流类型字节流和字符流字节流和字符流Java I/O基本原理为为进进行行数数据据的的输输入入/输输出出操操作作,Java中中把把不不同同的的输输入入/输输出出源源(键键盘盘、文文件件、网网络络连连接接等等)抽抽象象表表述述为为“流流”(stream)。java.io包包中中定定义义了了多多个个流流类类型型(类类或或抽抽象象类类)来来实实现输入现输入/输出功能。输出功能。两种基本的流:输入流和输出流两种基本的流:输入流和输出流输入流输入流: 只能从中读取数据,而不能向
2、其写出数据只能从中读取数据,而不能向其写出数据输出流输出流: 只能向其写出数据,而不能从中读取数据只能向其写出数据,而不能从中读取数据节点流和处理流 节节点点流流: 可可以以从从/向向一一个个特特定定的的地地方方(节节点点)读写数据,例如磁盘或者一块内存。读写数据,例如磁盘或者一块内存。 处处理理流流: 是是对对一一个个已已存存在在的的流流的的连连接接和和封封装装,通通过过所所封封装装的的流流的的功功能能调调用用实实现现数据读数据读/写功能。写功能。节点流和处理流字符流和字节流按处理数据的单位划分,Java支持两 种基本的流类型: 字符流和字节流字节流字节流字符流字符流输入输入InputStr
3、eamReader输出输出OutputStreamWriterInputStream类提供的方法 三个基本的read方法:int read()int read(byte buffer)int read(byte buffer, int offset, int length) 其它方法:void close()int available()skip(long n)boolean markSupported()void mark(int readlimit)void reset()FileReaderOutputStream类提供的方法 三个基本的write方法:void write(int c)
4、void write(byte buffer)void write(byte buffer, int offset, int length) 其它方法void close()void flush()Reader类提供的方法 三个基本的read方法:int read()int read(char cbuf)int read(char cbuf, int offset, int length) 其它方法void close()boolean ready()skip(long n)boolean markSupported()void mark(int readAheadLimit)void res
5、et()Writer类提供的方法 三个基本的write方法:void write(int c)void write(char cbuf)void write(char cbuf, int offset, int length)void write(String string)void write(String string, int offset, int length) 其它方法void close()void flush()节点流类型(Node Streams)类类 型型 字字 符符 流流字字 节节 流流FileFileReaderFileWriterFileInputStreamFile
6、OutputStreamMemory ArrayCharArrayReaderCharArrayWriterByteArrayInputStreamByteArrayOutputStreamMemory StringStringReaderStringWriterPipePipedReaderPipedWriterPipedInputStreamPipedOutputStream节点流应用举例-文件复制 import java.io.*; public class Test1 public static void main(String args) try FileReader input =
7、 new FileReader(Test1.java); FileWriter output = new FileWriter(temp.txt); int read = input.read(); while ( read != -1 ) output.write(read);read = input.read(); input.close(); output.close(); catch (IOException e) System.out.println(e); 缓冲功能处理流举例import java.io.*;public class Test2 public static void
8、 main(String args) try FileReader input = new FileReader(Test2.java); BufferedReader br = new BufferedReader(input); FileWriter output = new FileWriter(temp.txt); BufferedWriter bw = new BufferedWriter(output); String s = br.readLine(); while ( s!=null ) bw.write(s);bw.newLine();s = br.readLine(); br.close(); bw.close(); catch (IOException e) e.printStackTrace();本章内容java流式输入/输出原理java基本I/O流类型字节流和字符流