- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络编程Lesson7IO
Lesson7 I/O 主讲人:孙鑫 File类 一个File类的对象,表示了磁盘上的文件或目录。 File类提供了与平台无关的方法来对磁盘上的文件或目录进行操作。 流式I/O 流(Stream)是字节的源或目的。 两种基本的流是:输入流(Input Stream)和输出流(Output Stream)。可从中读出一系列字节的对象称为输入流。而能向其中写入一系列字节的对象称为输出流。 流的分类 节点流:从特定的地方读写的流类,例如:磁盘或一块内存区域。 过滤流:使用节点流作为输入或输出。过滤流是使用一个已经存在的输入流或输出流连接创建的。 InputStream 三个基本的读方法 abstract int read() :读取一个字节数据,并返回读到的数据,如果返回-1,表示读到了输入流的末尾。 int read(byte[]?b) :将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。 int read(byte[]?b, int?off, int?len) :将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。off指定在数组b中存放数据的起始偏移位置;len指定读取的最大字节数。 其它方法 long skip(long?n) :在输入流中跳过n个字节,并返回实际跳过的字节数。 int available() :返回在不发生阻塞的情况下,可读取的字节数。 void close() :关闭输入流,释放和这个流相关的系统资源。 void mark(int?readlimit) :在输入流的当前位置放置一个标记,如果读取的字节数多于readlimit设置的值,则流忽略这个标记。 void reset() :返回到上一个标记。 boolean markSupported() :测试当前流是否支持mark和reset方法。如果支持,返回true,否则返回false。 java.io包中 InputStream的类层次 OutputStream 三个基本的写方法 abstract void write(int?b) :往输出流中写入一个字节。 void write(byte[]?b) :往输出流中写入数组b中的所有字节。 void write(byte[]?b, int?off, int?len) :往输出流中写入数组b中从偏移量off开始的len个字节的数据。 其它方法 void flush() :刷新输出流,强制缓冲区中的输出字节被写出。 void close() :关闭输出流,释放和这个流相关的系统资源。 java.io包中 OutputStream的类层次 基本的流类 FileInputStream和FileOutputStream 节点流,用于从文件中读取或往文件中写入字节流。如果在构造FileOutputStream时,文件已经存在,则覆盖这个文件。 BufferedInputStream和BufferedOutputStream 过滤流,需要使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率。 DataInputStream和DataOutputStream 过滤流,需要使用已经存在的节点流来构造,提供了读写Java中的基本数据类型的功能。 PipedInputStream和PipedOutputStream 管道流,用于线程间的通信。一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。要使管道流有用,必须同时构造管道输入流和管道输出流。 Java I/O库的设计原则 Java的I/O库提供了一个称做链接的机制,可以将一个流与另一个流首尾相接,形成一个流管道的链接。这种机制实际上是一种被称为Decorator(装饰)设计模式的应用。 通过流的链接,可以动态的增加流的功能,而这种功能的增加是通过组合一些流的基本功能而动态获取的。 我们要获取一个I/O对象,往往需要产生多个I/O对象,这也是Java I/O库不太容易掌握的原因,但在I/O库中Decorator模式的运用,给我们提供了实现上的灵活性。 I/O流的链接 Reader和Writer Java程序语言使用Unicode来表示字符串和字符。 Reader和Writer这两个抽象类主要用来读写字符流。 java.io包中Reader的类层次 java.io包中Writer的类层次 字符集的编码 ASCII(American Standard
您可能关注的文档
- iptables语法.pptx
- 郑州大学期末试卷 linux网络架构A卷.doc
- 北大青鸟-linux-9-12.docx
- chap19-IPTables防火墙配置.pptx
- 2014年重庆市中考历史试题及答案(B卷).doc
- 网络命令TC和IPTABLES分享.ppt
- 第19章 Linux安全基础.ppt
- BENET3.0S2试题01.doc
- Iptables 配置指南.docx
- 构建Squid代理服务器.doc
- Haier海尔413升风冷变频多门冰箱 BCD-413WGHFD1BSJU1(白)说明书用户手册.pdf
- Siemens西门子工业抽屉式断路器主回路后垂直连接 抽屉式断路器主回路后垂直连接使用手册.pdf
- Samsung三星智能佩戴设备 Galaxy Fit3安全手册.pdf
- Samsung三星滚筒洗衣机 AI神 黑钻热泵洗烘旗舰 WD18DB8995BZSC使用手册.pdf
- Sakura樱花消毒柜 保洁柜消毒柜 SCQ-130D6用户手册说明书.pdf
- Hifiman头领科技ARYA UNVEILED说明书用户手册.pdf
- Siemens西门子工业抽屉式主回路连接前置端子 支撑件 抽屉式主回路连接前置端子 支撑件使用手册.pdf
- Siemens西门子工业中性线的外部电流传感器 中性线的外部电流传感器使用手册.pdf
- Siemens西门子工业电子脱扣单元 电子脱扣单元使用手册.pdf
- Razer雷蛇Playstation 专用雷蛇战锤狂鲨极速版 RZ12-038203 用户指南 (简体中文)说明书用户手册.pdf
文档评论(0)