选修_1_1_通用连接框架(GCF)

上传人:豆浆 文档编号:49011724 上传时间:2018-07-22 格式:PPT 页数:27 大小:331KB
返回 下载 相关 举报
选修_1_1_通用连接框架(GCF)_第1页
第1页 / 共27页
选修_1_1_通用连接框架(GCF)_第2页
第2页 / 共27页
选修_1_1_通用连接框架(GCF)_第3页
第3页 / 共27页
选修_1_1_通用连接框架(GCF)_第4页
第4页 / 共27页
选修_1_1_通用连接框架(GCF)_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《选修_1_1_通用连接框架(GCF)》由会员分享,可在线阅读,更多相关《选修_1_1_通用连接框架(GCF)(27页珍藏版)》请在金锄头文库上搜索。

1、通用连接框架(GCF)本章目标 流式输入输出 资源文件与流 Connection与HTTP编程 Socket编程流式输入输出(java.io.*)字节流字符流输入InputStreamReader输出OutputStreamWriterInputStream类 public int read(); public int read(byte b); public int read(byte b, int off, int len); public long skip(long n);使位置指针从当前位置向后跳过 n个字节。 publicvoid mark();在当前位置指针处做一个标记。 pub

2、lic void reset();将位置指针返回到标记的位置。 public boolean markSupported();是否支持标记操作。 public int available();流中有多少字节可读 public void close();关闭流,并断开外设数据源的连接, 释放占用的系统资源。OutputStream类public void write (int b);将参数b的低位字节写入到输出流 。 public void write (byte b);将字节数组b中的全部字节 顺序写入到输出流。 public void write(byte b, int off, int l

3、en);将字节数组b中 从off开始的len个字节写 public void flush (); public void close();Reader类 public int read(); public int read(char b); public int read(char b, int off, int len); public long skip(long n);使位置指针从当前位置向后跳过 n个字节。 public void mark();在当前位置指针处做一个标记。 public void reset();将位置指针返回到标记的位置。 public boolean markSu

4、pported();是否支持mark操作。 public int available();流中有多少字节可读 public void close();关闭流,并断开外设数据源的连接, 释放占用的系统资源。Writer类 public void write (int b);将参数b的低两字节写入到输出流 。 public void write (char b);将字符数组b中的全部字节 顺序写入到输出流。 public void write(char b, int off, int len);将字节数组b 中从off开始的len个字节写入到流中。 public void write( Strin

5、g s); 将字符串写入流中。 public void write( String s, int off, int len); 将字符串写入流 中,off为位置,len为长度。 public void flush ();刷新流。 public void close();关闭流。节点流和处理流 节点流(Node Stream): 可以从/向一个特定的地方(节点)读 写数据。如 ByteArrayInputStream及ByteArrayOutputStream。 处理流(Processing Stream): 是对一个已存在的流的连接和 封装,通过所封装的流的功能调用实现数据读/写功能。处理流

6、又称为过滤流。如 DataInputStream及DataOutputStream。 处理流的构造方法总是要带一个其他的流对象作参数。 如: DataInputStream in = new DataInputStream(new ByteArrayInputStream(buf);数据输入输出流 数据输入输出流DataInputStream和DataOutputStream的最 主要作用就是在数据源和程序之间加一个过滤处理步骤,对原始 数据做特定的加工、处理和变换操作。数据输入输出流 DataInputStream和DataOutputStream由于分别实现了DataInput和 Data

7、Output两个接口中定义的独立于具体机器的带格式的读写操 作,从而实现了对不同类型数据的读写。 DataInputStream流中定义了多个针对不同类型数据的读方 法,如readByte(), readBoolean(),readShort(),readChar(), readInt(),readLong(),readUTF()等。同样,DataOutputStream中 也定义了多个针对不同数据类型的写操作,如writeByte() ,writeBoolean() ,writeShort() ,writeChar() ,writeInt(),writeLong() ,writeChars(

8、) ,writeUTF()等。每个方法都含有一个不同类型的参 数,用来指定写入输出流的数据内容。这里省略了参数没有写出 。编码 特别值得一提的是,能将字节流转为字符流的类是 InputStreamReader及OutputStreamWriter。 如果需要从与本地机器不同的字符编码(encoding)格式的 文件中读取数据(例如,从网络上的一台基于不同平台的机器 上读取文件),可以在构造InputStreamReader对象时显式指定其 字符编码,例如: ir = new InputStreamReader(in, “GB2312”)标准输出System.out 标准输出 System.er

9、r 标准错误信息输出它们是PrintStream(是 OutputStream的子类)资源文件与流 关于文件的API MIDP中现在还没有一般意义上的文件与目录 JSR75中规定了文件操作 有的厂商API也规定了文件操作(如Motorola) 解决信息存取的 办法 对于只进行读取的信息,可使用资源文件(本章讲) 还可以将信息放到网上,通过网络存取(本章讲) 对于要读写的信息,可以用数据库RMS资源文件 程序中要存取资源文件可以使用Class类的方法 getResourceAsStream()方法: InputStream is =getClass().getResourceAsStream(f

10、ilename); 该方法将文件作为一个输入流,从而使它可以读入相应 的内容。通常还要把这个流“包装”成处理流,以便于读取操作, 例如,如果它是文本文件,则可以生成一个Reader对象: InputStreamReader isr = new InputStreamReader( is, “utf-8“ );示例例ResourceStream.java 读取资源文件的内容。通用连接框架(GCF)javax.microedition.io.*GCF结构认识GCF框1最上层的接口是Connection 接口,其他的接口都从它那里继 承。在Connection 中只定义了一个方法close()。在我

11、们的现实世界中通常使用的是分组数据交换和电路交 换,因此在联网框架中相应的定义了DatagramConnection 和 StreamConnection。由于在基于流传输中我们需要对输入流和输出流通是具有 操作的能力, 因此StreamConnection 扩展了InputConnection 和 OutputConneciton , 我们经常使用的Conn.openInputStream(), conn.openOutputStream()方法都是在这两个重要的接口中定义的 。认识GCF框2StreamConnectionNotifier 接口定义了连接监听器应该具备 的能力,它的方法ac

12、ceptAndOpen()方法返回一个 StreamConnection 类型的连接, ServerSocketConnection 继承了 StreamConnectionNotifier 接口,这样如果你将你得设备做为 socket server 的时候就可以通过使用这样的URL:socket:/:port 在 你的设备上建立监听端口等待连接。SocketConnection 继承了StreamConnection 正好可以和 ServerSocketConnection 交相辉映。UDPDatagramConnection 则是为了在分组数据交换中使用, 他继承了DatagramConn

13、ection接口。ContentConnection 接口中只定义了三个方法 getEncoding(),getLength()和getType(),我们非常熟悉的 HttpConnection 就是他的子类,在HttpConnection 中定义了大量 的操作,Http 联网功能也是MIDP 规范中要求厂商必须支持的连 接方式。Connector类 在java.microedition.io包中提供了类Connector,它可以用 来 进行网络等各方面的输入及输出,所用的都是Connector的 open()方法。open()方法带一个字符串作参数,字符串可以代表 各种不同的输入及输出源,如

14、: 使用HTTP: Connector.open(“http:/”) ; 使用Socket: Connector.open(“socket:/192.168.0.3:8080”) ; 使用Datagram: Connector.open(“datagram:/:9000”) ; 使用文件: Connector.open(“file:/input.txt”) ; 使用串口: Connector.open(“com:0;baudrate=9600”) ; JSR82中还规定了文件、蓝牙等HttpConnection HttpConnection是Connection, ContentConnect

15、ion,InputConnection, OutputConnection, StreamConnection 的子接口 openInputStream 打开输入流 openDataInputStream 打开数据输入法 getLength 得到流的长度 getType 得到连接的类型 getEncoding 得到编码方式 getHeaderField 得到头信息 getResponseCode 得到响应代码 getResponseMessage 得到响应消息 getHeaderFieldInt 得到头信息并作为一个整数 getHeaderFieldDate得到头信息并作为一个日期 getExpiration 得到过期时间 getDate 得到日期 getLastModified 得到最后的更新时间 getHeaderFieldKey 得到头信息的关键字获取相关信息 getRequestMethod 得到请求方法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号