java网络编程第5章解读.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java网络编程第5章解读

第五章 JAVA IO—字节流 课程目标 IO流的介绍 InputStream OutputStream File FileInputStream FileOutputStream DataInputStream DataOutputStream PrintStream 体验项目——文件复制器 运行文件复制器程序,打开左图所示的窗体,当点击“请选择要复制的文件”后面的“…”按钮时,会弹出右图所示的“文件选择”对话框,在该对话框中选择要复制的文件: 选择完要复制的文件后,点击 “请选择文件存放目录”后面的“…”按钮时,会弹出“保存位置”对话框,如图所示,在该对话框中选择文件的存放位置。 流的概念 JAVA语言在实现输入与输出的过程中,用到了流(stream)这个概念。所谓“流”,就是指数据通信通道。流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。我们通常提到的输入输出,都是立足于编程者角度上的,因此,所谓输入,就是将编程者所设计的程序看作流的终点;所谓输出,则是将程序看作流的起点。 这一节中,将学习java.io包中与输入输出有关的类与方法,对流的输入输出进行详细的阐述,JAVA语言的输入输出类也是网络编程的基础。 字节流和字符流 JAVA定义了两种类型的流:字节流和字符流。字节流为处理字节的输入和输出提供了方便的方法,用于读写二进制等数据。字符流为处理字符的输入和输出提供了方便的方法,它们采用Unicode(统一的字符编码标准,采用双字节对字符进行编码),因此能够国际化。但是,字符流有时会比字节流更有效。 所有输入输出在较低的层次上仍然是面向字节的。基于字符的流只是提供了一种简便而有效的处理字符的手段。 字节流使用从输入和输出两个层次定义。顶层是两个抽象类:InputStream和OutputStream。每个抽象类都有几个具体的子类,用来处理不同的设备,如磁盘文件、网络连接、内存缓冲区等。字节流类如下表所示,其中有几个子类将在本节后面讨论。记住,必须导入java.io包后才能使用流类。 字节流类表 字节流类表 字节类的层次结构 InputStream InputStream类是所有输入流类的基类,它直接的下一级子类ByteArrayInputStream类、FileInputStream类、FilterInputStream类、PipedInputStream类、SequenceInputStream类和StringBufferInputStream类等。根据面向对象程序设计的原理以及类之间的继承关系,我们很容易想到InputStream类必然要对某些方法进行抽象和概括,进而规范出输入流的最基本的方法。此外,该类的所有方法在发生错误时都将抛出IOException异常。 InputStream的常用方法 int available() 返回当前可读的输入字节数。 void close() 关闭输入源,如果继续读它将会产生一个IOException异常。 void mark(int numBytes) 放一个标记到输入流的当前点。InputStream 的mark方法不执行任何操作。 boolean markSupported() 测试此输入流是否支持 mark 和 reset 方法。 int read() 如果下一个输入字节可用,返回一个整数。如果到了文件的末尾,则返回-1,需要注意的是,如果无法从流中获取数据,就会导致程序流程的阻塞,并且一直阻塞到可读取到数据为止。 void reset() 重新设置输入指示器到前面设置的标记。 long skip(long numBytes) 跳过或放弃此输入流中的numBytes个数据字节,返回实际忽略的字节数。 OutputStream 在上一小节中介绍的是以程序作为输入流流向的目标,而在这一部分,将介绍程序作为输出流流出的源泉。在JAVA中,大多数的流类都是“成对出现”的,如果有InputStream类,就有OutputStream类,有ByteArrayInputStream类就有ByteArrayOutputStream类。 在这一部分介绍所有输出流的共同的基类—OutputStream类,它的最直接的子类是ByteArrayOutputStream类、FilterOutputStream类、FileOutputStream类和PipedOutputStream类等。OutputStream类与InputStr

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档