java实验5

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象原理与Java实践课程实验报告

实验5:网络编程

姓名:_ 班级:计算机12-2班_学号:_ 成绩:__

一、实验目的:

●掌握通过URL类获得指定网络资源内容和文件属性

●理解流在获得文件内容中的作用

●掌握进行Socket通信的程序设计办法

●掌握GUI编程

二、实验要求:

●熟悉用URL访问网络资源的方法和Socket通信原理

●掌握基本流类的使用方法

●掌握文件操作的基本方法

三、实验内容:

1、指定不同协议的URL地址,获得资源文件的内容和属性

2、实现“聊天室”程序,除具备基本的发送与接收信息功能之外,增加以下功能:

(1)增加上线功能。离线后,将【离线】按钮变成【上线】按钮,单击可再次申请建立连接。

(2)将文本区中对方和己方的字符串以不同的字体区别显示。

(3)发送带格式的字符串。

(4)增加复制功能,将文本区中的若干选中字符串复制到文本行中。

(5)增加若干图标作为表情,发送表情图标。

(6)增加对方信息到达时的语音提示。

(7)将聊天记录存储到文件中。

四、设计思路:

1、指定不同协议的URL地址,获得资源文件的内容和属性

(1)通过URL将网上资源文件的信息,并保全到“my.java”文件;

(2)通过FileReader和BufferedReader读取文件中的内容;

(3)通过getPath()读取文件路径;canRead()判断文件是否可读;canWrite()判断文件是否可写入;getName()获取文件名;length()读取文件长度;

2、“聊天室”程序

(1)服务端使用了线程池,当accept()监听到用户使用服务端,就给用户创建一个线程。

(2)客户端中包含有ChatClient()构造函数实现客户端的图形界面;saveFile()保存用户的聊天记录;readRecord()浏览该用户聊天记录;offline()实现用户的离线功能;online()实现用户的上线功能;shutdown()实现用户退出聊天室的功能;connect()实现客户端与服务端的连接;用Toolkit中的beep()实现信息到达时的语音提示。

五、程序源代码:

1、指定不同协议的URL地址,获得资源文件的内容和属性的程序代码:

//获得从网络上文件URLDemo

package url;

import java.io.*;

import .*;

public class URLDemo {

public static void main(String args[]) {

try {

FileOutputStream fos = new FileOutputStream("my.java");

URL url = new URL("/file/d66fd837611f18f62316a27cb63b6ef0?fid=2537402017-250528-817533712490310&time=1403405528&sign=FDTAXER-DCb740ccc5511e5e8fedcff06b081203-4Z14VM1c55n5l68j3heqOAt2it8%3D&to=nb&fm=N,B,T,ny&newver=1&expires=1403406128& rt=sh&r=444416615&logid=1610665282&sh=1&vuk=2537402017&fn=URL.txt");

InputStream is = url.openStream();

int i = is.read();

while(i !=-1) {

fos.write((byte)i);

i = is.read();

}

fos.flush();

fos.close();

is.close();

SplitFile spf =new SplitFile();

spf.splitFile();

FilePropertyDemo fpd =new FilePropertyDemo();

fpd.FileProperty();

} catch (IOException e) {

}

}

}

//取得文件中的内容SplitFile

package url;

import java.io.*;

public class SplitFile {

public void splitFile() {

try{

String st=null;

FileReader fr=new FileReader("my.java");

BufferedReader bfr=new BufferedReader(fr);

System.out.println("资源文件的内容:");

while(bfr.ready()){

st=bfr.readLine();

String[] str=st.split(";");

for (int i=0;i

System.out.println(str[i]);

}

bfr.close();

fr.close();

}

catch(IOException e){

System.out.println(e);

}

}

}

//取得文件属性FilePropertyDemo

package url;

import java.io.*;

public class FilePropertyDemo{

public void FileProperty()

{

File aFile=new File(

"C:/workspace/test/my.java");

System.out.println("文件的属性:");

System.out.println(

//文件绝对路径

"文件绝对路径: "+aFile.getAbsolutePath()+

//是否可读

"\n 是否可读: "+aFile.canRead()+

//是否可写

"\n 是否可写: "+aFile.canWrite()+

//文件名

"\n 文件名: "+aFile.getName()+

//文件所在上级目录

"\n 文件上级目录: "+aFile.getParent()+

//文件所在目录(包括文件名)

"\n 文件所在目录(含文件名): "+aFile.getPath()+

相关文档
最新文档