Java文件上传下载
Java程序设计报告
文件上传下载
院 系: 城南学院
姓 名: xxx
班 级: 计算机09-1
学 号: 20098625xxxx
2012年6月16日
1、 Java简介
Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平...
Java程序设计
文件上传下载
院 系: 城南学院
姓 名: xxx
班 级: 计算机09-1
学 号: 20098625xxxx
2012年6月16日
1、 Java简介
Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决
。Java的平台
有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。
在本程序设计中,因为需要开发的是socket通信程序,规模较小,内容较少,但考虑到将来可能进行大型软件的开发,所以选择了普遍使用的MyEclipse开发工具。
2、 任务:
1)使用Java语言编写代码,实现文件上传下载功能。
2)复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
3)学会分析解决实际问
的能力。提高适应实际,实践编程的能力;
4)程序分为客户端和服务段,使用socket套接字实现网络通信,使用数据流实现文件传输。
5)支持站点目录和文件结构浏览
3、 程序详细设计与分析
i. 服务器端代码
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class FileUpLoadProjServer extends Thread {
public FileUpLoadProjServer(Socket s, String c) throws IOException {
}
public void run() {
}
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(8110);
Socket connection = null;
System.out.println("服务端打开");
while (true) {
try {
connection = server.accept();
InputStreamReader in = new InputStreamReader(connection
.getInputStream());
long time = System.currentTimeMillis();
String t = "D:\\java\\" + time;
File myFile = null;
if ((new File(t).mkdir())) {
myFile = new File(t + "\\temp.txt");
} else {
System.out.println("Create folder failed!");
}
FileOutputStream fos = new FileOutputStream(myFile);
int ch = 0;
while ((ch = in.read()) != -1) {
System.out.print((char) ch);
fos.write(ch);
}
fos.close();
connection.close();
} catch (IOException ioe) {
System.err.println(ioe);
} finally {
try {
if (connection != null)
connection.close();
} catch (IOException e) {
}
}
}
} catch (IOException ee) {
System.err.println(ee);
}
}
}
ii. 客户端端代码
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;
public class up_down extends Thread {
private Socket socket;
private PrintWriter out;
final int port = 8110;
static String path = "D:\\java\\";
static String name ;
public static void recursion(String root)
{
File file = new File(root);
File[] subFile = file.listFiles();
for (int i = 0; i < subFile.length; i++)
{
if (subFile[i].isDirectory())
{
System.out.println("目录: " + subFile[i].getName());
recursion(subFile[i].getAbsolutePath());
}
else{
System.out.println("文件: " + subFile[i].getName());
}
}
}
public up_down(InetAddress addr) {
try {
socket = new Socket(addr, port);
} catch (IOException e) {
}
try {
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream())), true);
start();
} catch (IOException e) {
try {
socket.close();
} catch (IOException e2) {
}
}
}
public void run() {
try {
File root = new File(path);
String[] colum = root.list();
System.out.println("The file's num is :" + colum.length);
//
for (int i = 0; i < colum.length; i++) {
//
System.out.println("The colum's content is :" + colum[i]);
String filePath = path + name;
System.out.println("The file's absolutePath is :" + filePath);
FileInputStream fis = new FileInputStream(filePath);
File file=new File("d:\\java");
if(!file.exists()){
file.mkdir();
}
FileOutputStream ou=new FileOutputStream(file+"\\"+name);
int ch = 0;
while ((ch = fis.read()) != -1) {
//
System.out.print((char) ch);
ou.write(ch);
}
fis.close();
//
}
out.close();
System.out.print("over");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException,
InterruptedException {
System.out.println("客户端目录下文件");
recursion(path);
Scanner input=new Scanner(System.in);
String str=input.next();
name = str ;
InetAddress addr = InetAddress.getByName("127.0.0.1");
new up_down(addr);
}
}
4、 测试分析
图表 1 打开服务端
图表 2 打开客户端显示客户端目录下文件
图表 3 输入要上传的文件
图表 4 按回车后,显示文件目录和大小
图表 5 文件传输后,显示文件结束
图表 6 在服务端目录中已经出现了test.jpg文件
5、 课程设计体会
经过努力,基本上完成我的Java课程设计—利用socket和文件流实现上传下载,也基本上实现了老师需求分析时所预期的功能。通过这次的课程设计,使将我从
本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到Java及其强大的功能。同时,做这门课程设计也进一步加强了我的动手能力。为了完成好这次课程设计,我一边上网查找相关资料,另一方面查阅相关书籍。在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。但是,设计过程遇到了不少的困难。
4
本文档为【Java文件上传下载】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。