java文件上传
来源:互联网 发布:java 线程 通信 编辑:程序博客网 时间:2024/06/09 06:35
上传文本文件
客户端:
publicstaticvoid main(String[] args)throws UnknownHostException,IOException {
//建立客户端Socket
Socketsocket =new Socket("localhost", 10005);
//获取输出流
PrintWriterout =newPrintWriter(socket.getOutputStream(),true);
//获取本地的文件流
BufferedReaderbufr =new BufferedReader(new FileReader(new File("D:\\list.txt")));
//开始上传
System.out.println("开始上传");
Stringline =null;
while((line =bufr.readLine())!=null){
out.println(line);
}
// out.println("over");
socket.shutdownOutput();//发送过去一个结束标志告诉服务器端结束
//获取上传后的信息
BufferedReaderbufIn =new BufferedReader(newInputStreamReader(socket.getInputStream()));
while((line =bufIn.readLine())!=null){
System.out.println(line);
}
//关闭资源
socket.close();
}
服务器端
publicstaticvoid main(String[] args)throws IOException {
//创建服务器端的ServerSocket
ServerSocketss =new ServerSocket(10005);
//获取客户端的Socket
Socket s= ss.accept();
//获取Socket输入流
BufferedReaderbufIn =new BufferedReader(newInputStreamReader(s.getInputStream()));
//将数据存储到服务器
File file=new File("D:\\load\\loadlist.txt");
if(!file.exists()){
file.createNewFile();
}
BufferedWriterbufw =new BufferedWriter(new FileWriter(file));
//上传
Stringline =null;
while((line =bufIn.readLine())!=null){//客户端结束,服务器端不能结束,等待。使用自定义的结束标志
if("over".equals(line)){
break;
}
bufw.write(line);
bufw.newLine();
bufw.flush();//必须刷新
}
//上传成功
s.getOutputStream().write("上传成功".getBytes());
s.close();
ss.close();
}
上传媒体文件
客户端
publicstaticvoid main(String[] args)throws UnknownHostException,IOException {
//建立客户端Socket
Socketsocket =new Socket("localhost", 10006);
//获取输出流
OutputStreamout = socket.getOutputStream();
//获取本地的文件流
Filefile =new File("D:\\love.mp3");
byte[] buf =newbyte[1024];
int len = 0;
FileInputStreamin =new FileInputStream(file);
//开始上传
System.out.println("开始上传");
Stringline =null;
while((len =in.read(buf))!=-1){
out.write(buf,0, len);
}
// out.println("over");
socket.shutdownOutput();//发送过去一个结束标志告诉服务器端结束
//获取上传后的信息
BufferedReaderbufIn =new BufferedReader(newInputStreamReader(socket.getInputStream()));
while((line =bufIn.readLine())!=null){
System.out.println(line);
}
//关闭资源
socket.close();
}
服务器端
publicstaticvoid main(String[] args)throws IOException {
//创建服务器端的ServerSocket
ServerSocketss =new ServerSocket(10006);
//获取客户端的Socket
Sockets = ss.accept();
//获取Socket输入流
InputStreamin = s.getInputStream();
//将数据存储到服务器
Filefile =new File("D:\\load\\love.mp3");
FileOutputStreamout =new FileOutputStream(file);
//上传
Stringline =null;
byte[] buf =newbyte[1024];
int len = 0;
while((len =in.read(buf))!=-1){//客户端结束,服务器端不能结束,等待。使用自定义的结束标志
out.write(buf,0, len);
}
//上传成功
s.getOutputStream().write("上传成功".getBytes());
s.close();
ss.close();
}
实现多客户端的上传
服务器端的改变
class ReadOrWriteimplements Runnable{
private Sockets ;
@Override
publicvoid run() {
int count = 0;
try {
InputStream in =s.getInputStream();
Filedir =new File("D:\\load");
if(!dir.exists()){
dir.mkdirs();
}
Filefile =new File(dir,".mp3");
while(file.exists()){
file =new File(dir,"("+(++count)+")"+".mp3");
}
FileOutputStreamout =new FileOutputStream(file);
Stringline =null;
byte[] buf =newbyte[1024];
int len = 0;
while((len =in.read(buf))!=-1){//客户端结束,服务器端不能结束,等待。使用自定义的结束标志
out.write(buf,0, len);
}
s.getOutputStream().write("上传成功".getBytes());
s.close();
}catch (IOException e) {
//TODO Auto-generated catchblock
e.printStackTrace();
}
}
public ReadOrWrite(Socket s) {
super();
this.s = s;
}
}
Public static void main(String[] args){
ServerSocket ss = new ServerSocket(10005);
while(true){
Sockets = ss.accept();
new Thread(new ReadOrWrite(s)).start();
}
}
- Java 文件上传 JQ 文件上传
- java文件上传原理
- java文件上传原理
- java上传文件
- 上传文件 JSP+java
- JAVA上传文件
- java上传文件
- java fileupload上传文件
- java-文件上传案例
- JAVA上传EXCEL文件
- java上传文件
- java 超大文件上传
- java上传文件实例
- java 文件上传
- JAVA 上传文件类
- JAVA之"文件上传"
- java文件上传
- java文件上传方法
- HTML格式8
- 网络编程TCP
- 步步惊“芯”——软核处理器内部设计分析
- ogre font的load与使用方式
- Android调用Webservice实现手机号码归属地查询
- java文件上传
- 向上取整和向下取整
- Oracle 11g 安装JVM
- 绝妙的取样
- 系统性能调优6篇
- Winform应用程序强制退出
- 启动Activity时,不让EditText弹出输入法-解决办法
- 反射机制
- Struts2标签库(1):OGNL表达式语言