《输入输出处理.ppt》由会员分享,可在线阅读,更多相关《输入输出处理.ppt(20页珍藏版)》请在三一文库上搜索。
1、输入输出处理,第八章,2,回顾,异常的基本概念 异常的处理 异常类的层次结构 创建自己的异常,3,目标,输入/输出流的概念和类层次结构 主要字节流的定义和使用 主要字符流的定义和使用 文件管理以及文件操作 对象串行化的概念和实现方法 了解其他常用流的定义和使用,4,8.1.1 输入/输出流的概念,数据流:是指在计算机的输入输出之间运动的数据序列。 输入输出是相对程序来说的,程序扮演两个角色:源和目的。 输入流:代表从外设流入程序的数据序列; 输出流:代表从程序流向外设的数据序列。 字节流:在输入输出过程中以字节为单位。 字符流:在输入输出过程中以字符为单位。,5,8.1.2 输入输出类层次,6
2、,8.1.3 标准输入输出,1.标准输入 public static final InputStream in 使用read()和skip(long n)方法读取。 2.标准输出 public static final PrintStream out 使用print()和println()来输出。 3.标准错误输出 public static final PrintStream err,7,8.2.1 文件输入输出字节流,(1)创建FileInputStream类对象; (2)读取文件信息; (3)创建FileOutputStream类对象; (4)向输出流写信息: void write(in
3、t b); void write(byte b ); void write( byte b ,int off,int len); (5)关闭FileInputStream流。,8,8.2.2 过滤流,1、DataInputStream,DataOutputStream 1使用数据流方法: (1)用前面的方法建立字节文件流对象; (2)基于字节文件流对象建立数据文件流对象; (3)用此对象方法对基本类型的数据进行输入/输出。 2创建数据流的构造方法。 2、BufferedInputStream,BufferedOutputStream (1)创建流对象BufferedOutputStream;(
4、2)用flush()方法更新流; (3)创建BufferedInputStream对象; (4)缓冲流类的应用。 3、PrintStream类,9,8.3.1 输入输出字符流,常用的是InputStreamReader和OutputStreamWriter 1.其构造方法: InputStreamReader(InputStream in); InputStreamReader(InputStream in,String enc); OutputStreamWriter(OutputStream out); OutputStreamWriter(OutputStream out,String
5、enc); 2.读写方法 3.其他方法 String getEncoding() public void colse(),10,8.3.2 文件输入输出字符流,FileReader和FileWriter是InputStreamReader和OutputStreamWriter的子类。构造方法各有两种。 FileReader(File f) FileReader(String fn) FileWriter(File f) FileWriter(String fn) 常用方法: read(); read(char buffer); write(String str); write(char buf
6、fer);,11,8.3.3 缓冲字符流,BufferedReader和BufferedWriter 构造方法: BufferedReader(Reader in) BufferedReader(Reader in,int size) BufferedWriter(Writer out) BufferedWriter(Writer out,int size) 常用方法:readLine( ); newLine( );,12,8.3.4 打印输出字符流,PrintWriter提供字符流的输出处理。 PrintWriter(OutputStream out) PrintWriter(OutputS
7、tream out,Boolean autoflush) PrintWriter(Writer out) PrintWriter(Writer out,Boolean autoflush),13,8.4.1 文件描述,在java.io包中的File类提供了平台无关的方式来描述目录和文件对象的属性。提供了很多的方法用来获取路径、目录和文件的相关信息。 目录管理 文件管理 1.文件的生成 2.文件名的处理 3.文件属性测试 4.文件信息处理,14,8.4.2 文件的顺序访问,1、引入“java.io”包,import java.io.*; 2、根据数据源和输入输出的任务建立字节或字符流。 3、若需
8、要对字节或字符信息组织加工位数据在已建字节或字符流对象上建立数据流或缓冲流。 4、用输入输出流对象的成员方法进行读/写操作,需要时可设置指针位置。 5、关闭流对象。2-5要考虑异常处理。,15,8.4.3 文件的随机访问,使用下列构造方法创建流: RandomAccessFile(String name,String mode); RandomAccessFile(File name,String mode); mode的取值为”r”或”rw”,16,8.5.1 串行化的概念和目的,对象能记录自己状态以便将来再恢复的能力。 目的: (1)支持Java的对象持续性。 (2)支持对象的远程调用。
9、(3)严格遵守Java的对象模型,对象的串行化状态中应存有所有的关于种类的安全特性的信息。 (4)允许对象定义自身的格式。 (5)尽量保持对象串行化的简单扼要,但可以进行扩展和定制。,17,8.5.2 串行化方法,1.定义一个可串行化的对象 使此对象所属的类实现Serializable接口。 2.输出数据进行保存 使用输入输出流读取和保存对象的基本数据。,18,8.5.3 串行化注意事项,1. 串行化能保存的对象 2.transient关键字 3.安全问题,19,8.6 其他常用流,1、管道流PipedInputStream和PipedOutputStream 用于在不同的线程间直接传送数据。 2、内存的访问 ByteArrayInputStream和ByteArrayOutputStream 为提高安全而禁止任何程序直接对内存进行操作。 3、顺序流 SequenceInputStream和SequenceOutputStream 同一若干不同的流。,20,总结,1、掌握输入输出的基本概念 2、主要的字节流的使用。 3、主要的字符流的使用。 4、文件的顺序访问。 5、文件的随机访问。,
链接地址:https://www.31doc.com/p-3194042.html