Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第5章Java网络程序设计及相关技术

上传人:E**** 文档编号:89189193 上传时间:2019-05-21 格式:PPT 页数:34 大小:282KB
返回 下载 相关 举报
Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第5章Java网络程序设计及相关技术_第1页
第1页 / 共34页
Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第5章Java网络程序设计及相关技术_第2页
第2页 / 共34页
Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第5章Java网络程序设计及相关技术_第3页
第3页 / 共34页
Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第5章Java网络程序设计及相关技术_第4页
第4页 / 共34页
Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第5章Java网络程序设计及相关技术_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第5章Java网络程序设计及相关技术》由会员分享,可在线阅读,更多相关《Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第5章Java网络程序设计及相关技术(34页珍藏版)》请在金锄头文库上搜索。

1、第5章Java网络程序设计及相关技术,本章要点 1流式输入输出 2java的线程机制 3URL编程 4利用Socket和服务器交互 5利用Datagram和服务器交互,51 流式输入输出与文件处理,一、流的定义: 是字节的源或目的,次序是有意义的,表示了字符或者字节数据的流动序列; 例如,一个需要键盘输入的程序,从一个文件中获取或者向文件存入数据等。 二、流的分类 1.输入流:读数据 InputStream是面向字节的输入流的父类,所有其它面向对象数据流的输入/输出类都要扩展这两个基类 reader和writer是所有面向字符的输入流的父类,2.输出流:写数据 OutputStream是面向字

2、节的输出流的父类,所有其它面向对象数据流的输入/输出类都要扩展这两个基类 writer是所有面向字符的输出流的父类 都包含在java.io包中,三、数据流的应用,1.字符输入 (1)从输入数据流读取文字数据,可以使用缓冲器来提高效率 例: BufferedReader br=new BufferedReader(new FileReader(“try.txt”); 使用缓冲器方式读入try.txt文本文件字符数据流。 (2)FileReader、InputStreamReader,(3) InputStreamReader:读入字节数据流, 将字节数据流转化为字符数据流 read():读入一个

3、或多个字节 readLine():从键盘输入字符串 System.in:是InputStream类的对象,输入设备(键盘) 例: BufferedReader b=new BufferedReader(new InputStreamReader(System.in); String s=b.readLine(); (4)应用实例:例5.1,2.字符输出,(1)输出字符数据流OutputStreamWriter, 将字符数据流转化为字节数据流 write():输出一个或多个字符 System.out:标准系统输出设备(显示器) (2) newLine():输出一个新行符号n (3) 应用实例:例

4、5.2,3. System类提供的输入输出功能,(1) System类:final类,在java.lang包中 Object (2) 组成:in:标准输入(键盘) InputStream类的对象 out:标准输出(屏幕) PrintStream类的对象 err:标准错误输出(屏幕) PrintStream类的对象 (3) Println() Print() (4) 应用实例:例5.3,四、文件类,1.File类 (1)构造函数 File myFile; myFile = new File(“mymotd“); myFile = new File(“/“, “mymotd“); File myD

5、ir = new File(“/“); myFile = new File(myDir, “mymotd“); (2)与文件名相关的方法 String getName() String getPath() String getAbsolutePath() String getParent() boolean renameTo(File newName),(3)文件测试方法 boolean exists() boolean canWrite() boolean canRead() boolean isFile() boolean isDirectory() boolean isAbsolute(

6、) (4)通用文件信息和工具 long lastModified() long length() boolean delete() (5)目录工具 boolean mkdir() String list(),2.随机访问文件,(1)RandomAccessFile类打开随机存取文件 用文件名 myRAFile = new RandomAccessFile(String name, String mode); 用文件对象 myRAFile = new RandomAccessFile(File file, String mode); 例: RandomAccessFile myRAFile; m

7、yRAFile = new RandomAccessFile(“db/stock.dbf“,“rw“);,(2).文件指针在文件中的移动,long getFilePointer(); void seek(long pos); long length() 例: myRAFile = new RandomAccessFile(“java.log“,“rw“); myRAFile.seek(myRAFile.length(); 五、实例 例5.4、5.5,5.2 Java多线程机制,一、线程 1.线程的定义:是程序进程单一而连续的控制流程 2.线程和进程之间的区别和联系:一个或更多的线程构成一个进程

8、,线程自身不能运行,栖身在某进程中,由进程触发执行。 Java.lang.Thread,二、创建线程,1.Java中创建线程的方法一: 继承扩展Thread类,直接产生线程 例55: public class MyThread extends Thread public void run() while (running) / 要执行的代码; public static void main(String args) Thread t = new MyThread(); t.start(); ,示例说明: (1)public void run():线程体,定义完成任务的代码 (2) start(

9、):激活线程运行,2.方法二:安装Runnable接口,间接产生线程,Runnable是实现线程的接口,实现线程功能的类都必须实现该接口 public class ThreadTest public static void main(String args) Xyz r = new Xyz(); Thread t = new Thread(r); class Xyz implements Runnable int i; public void run() while (true) System.out.println(“Hello “ + i+); if (i = 50) break; ,3.

10、两种实现方法的讨论 (1) 采用实现Runnable方法的情况:多重继承 (2) 采用继承Thread的方法的情况:单重继承,代码简单 4.应用实例:例5.7,三、线程的生命周期,1. 新建 2. 就绪 3. 运行 4. 阻塞 5.死亡 五者之间的关系见Word文件,.建立新线程:new Thread() .可运行状态:就绪 .不可运行状态:sleep() Suspend()(resume()、 wait()(notify() .死亡状态:stop(),四、线程的优先级,1.Java中线程的优先级从低到高以整数110表示,共分为10级,分别用1-10之间的数字表示。数字越大表明线程的级别越高。

11、 2.在Thread类中定义了表示线程最低、最高和普通优先级的成员变量 MIN_PRIORITY、MAX_PRIORITY和NORMAL_PRIORITY,代表的优先级等级分别为1、10和5 3.设置优先级 setPriority(6) 4.守护(Daemon)线程:是低级别线程 setDaemon(),五、线程同步,共享数据时保证数据的安全性 1. 栈的例子 2. 对象锁标志 3. synchronized()方法,六、多线程问题,1. 生产者和消费者问题 store:仓库类 store_in():添加产品 store_out():取走产品 customer:销售者 store_out()

12、producer:生产者 store_in() 2. 例5.8 3. 例5.9,5.3网络应用的层次和结构,一、Java网络基础知识 1.Java网络应用模型 (1)传统的客户机/服务器模型(C/S) 发出请求 返回结果,服务器,客户机,(2)Java的Web模型:浏览器/服务器模型(B/S) (3) URL对象:可打开并访问网络上的对象 (4) Java的网络类库 J:处理基本的网络功能 J.ftp:处理ftp协议 .www.content:处理WWW 页面内容 .www.html :支持HTML 语言。 .www.http:支持HTTP 协议,浏览器,应用服务器,数据库服务器,2.客户机/

13、服务器环境下的Java应用程序,(1).请求-应答模式:基于连接的网络通信模式,通过Socket类创建一条可靠的链接,客户机发出请求,服务器为客户机提供响应服务 (2).请求-应答模式的工作过程: a)服务器监听相应端口的输入; b)客户机发出一个请求; c)服务器接收到此请求; d)服务器处理这个请求,并把结果返回给客户机; e)重复上述过程,直至完成一次会话过程。,3.Java语言设计C/S程序的原理:,(1) 服务器应使用ServerSocket 类处理客户机的连接请求 (2) 服务器使用多线程机制 Server对象的run()方法是一个无限循环,用以监听来自客户机的连接。 URLCon

14、nection对象 (3) 客户机创建一Socket对象,用以与服务器通信 DataInputStream:用以从Socket 的InputStream 输入流中读取数据 PrintStream:用于往Socket的OutputStream 中写数据,二、Java程序对网上资源的访问,二、Java程序对网上资源的访问,1.利用URL类访问网上资源 (1)URL的组成:协议名、主机名、路径文件名、端口号 protocol:resourceName 协议名:http、ftp、gopher、file 资源名:包括主机名、端口号、文件名或文件内部的一个引用 例:http:/ http:/ http:/

15、:80/index.html,(2)URL类的构造函数 URL MyURL1=new URL(“http:/:80”); URL MyURL2=new URL(“http”,””,”index.html”); URL MyURL3=new URL(“http”,”,80,”index.html”); (3)使用URL类获取URL个部分属性 String getProtocol()方法:返回表示URL中协议的字符串对象。 String getHost()方法:返回主机名。 String getPort():返回端口号,默认-1。 String getFile():返回目录文件名(路径名) 例5.11: 改为URL url=new URL(“http:/”);,(4)获取URL内容 URL类getContent():获取URL内容 URL类的openConnection():得到与URL的URLConnection连接。 openStream():得到InputStream流。 (5)URLConnection类 URLConnection类包含了用于网络资源传递的方法 GetInputStream():返回从URL节点获取数据的输入流 GetOutputStream():返

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

当前位置:首页 > 高等教育 > 大学课件

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