java利用Socket网络传递文件
服务器端:
package com.huahua;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerThread extends Thread {
private Socket socket;
public ServerThread(Socket socket) {
super();
this.socket = socket;
}
public void run(){
try {
while(true){
DataInputStream in = new DataInputStream(socket.getInputStream());
//接收保存的路径
String path = "e:\\" + in.readUTF();
//接收的文件长度
long length = in.readLong();
//保存文件
DataOutputStream out = new DataOutputStream(new BufferedOutputStream(
new FileOutputStream(path)));
byte[] buf = new byte[1024];
int len = 0;
while((len=in.read(buf))!=-1){
out.write(buf,0,buf.length);
}
out.flush();
out.close();
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
try {
ServerSocket serverSocket = new ServerSocket(9999);
while(true){
new ServerThread(serverSocket.accept()).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
package com.huahua;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;
public class Client{
public static void main(String[] args){
FileInputStream fin = null;
DataOutputStream out = null;
try {
Socket socket = new Socket("127.0.0.1",9999);
File file = new File("f:\\张惠妹 - 彩虹.wma");
out = new DataOutputStream(socket.getOutputStream());
//传送文件名称
out.writeUTF(file.getName());
out.flush();
//传送文件长度
out.writeLong(file.length());
out.flush();
//传送文件
fin = new FileIn
相关文档:
简而言之,这两个类是用来利用正则表达式验证字符串有效性的。
Pattern类用来定义正则表达式规则,Matcher类用来定义要验证的字符串。
用法:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
当然,也可以直接用Pattern类直接验证,用法:
boolean ......
Struts、Hibernate和Spring的轻型J2EE架构的研究
关键词 Struts,Hibernate,Spring,用户管理
一、特性
1. Struts与MVC
Struts是Apache Jakarta项目的组成部分。该项目的目标是为建立Java Web 应用程序而提供的一个开源
框架。通过使用Struts框架可以改进和提高Java Server Pages (JSP ......
Java enum 枚举类型
枚举类型是一个常量集合的数据类型。
因为都是常量,所以一个枚举类型中的字段名都要大写。
在JAVA中,枚举类型的定义是通过“enum“关键字进行的。例如你要定义
一个表示一个星期的每一天的枚举类型:
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY ......
首先,建3个接口
FTPOperate.java:
public interface FTPOperate
{
public void execute(FTPBean entity);
}
FTPProxy.java:
public interface FTPProxy
{
public void connection();
public abstract void upload();
public abstract void download();
public void setEntity(FTPBe ......
需要做一个桌面的小东西,由于至今为止只会写Java,所以只有用swing来做了。朋友说Delphi做起来很快,但我没时间去学了,一定要开始横向发展了。
原来短暂的做过NetBeans的rcp开发,但它的代码组织有点过于复杂,不过我要做的不是很大的东西,但还是想先找Eclips ......