早上搞了一个字符流的,结果速度太慢,又搞了一个字节流的,这个速度比较快,3G的文件用了4分钟
由于只是简单的演示,只为了显示传输的方法,细节没有太多考虑
/**
Server代码
*/
import java.io.*;
import java.net.*;
public class UpLoadServer
{
public static void main(String[] args)
{
try
{
ServerSocket ss=new ServerSocket(9999);
Socket sk=ss.accept();
InputStream in=sk.getInputStream();
BufferedOutputStream bufw=new BufferedOutputStream(new FileOutputStream("Bt5.iso"));//目标文件路径
String line=null;
int len;
byte[] by=new byte[1024*1024*150];
while((len=in.read(by))!=-1)
{
bufw.write(by,0,len);
bufw.flush();
}
sk.close();
}
catch (Exception e)
{
}
}
}
/**
Client代码
*/
import java.io.*;
import java.net.*;
public class UpLoadClient
{
public static void main(String[] args)
{long start=System.nanoTime();
try
{
Socket sk=new Socket("192.168.1.107",9999);
BufferedInputStream bufr=new BufferedInputStream(new FileInputStream("C:\\迅雷下载\\Bt5.iso"));//原文件路径
OutputStream out=sk.getOutputStream();
int len;
double begin=bufr.available();
byte[] by=new byte[1024*1024*150];
while((len=bufr.read(by))!=-1)
{
out.write(by,0,len);
System.out.print("\r \r"+(1-(bufr.available()/begin))*100+"%");
}
sk.close();
}
catch (Exception e)
{
}
long end=System.nanoTime();
System.out.println("\n上传成功\n用时"+(end-start)/1000000000+"秒");
}
}