一、上传图片1.1、示例 /*上传图片*/import java.net.*;import java.io.*;import java.util.*;import java.text.*;/*客户端1.建立客户端服务2.读取客户端已经有数据,,将文件名发送给服务端3.通过Sc ...
一、上传图片
1.1、示例
/*上传图片*/import java.net.*;import java.io.*;import java.util.*;import java.text.*;/*客户端1.建立客户端服务2.读取客户端已经有数据,,将文件名发送给服务端3.通过Scoket,输出流将数据发送给服务端4.接收服务端返回信息5.关流Socket和流资源*/class UploadClient1{ public static void main(String[] args) throws Exception { //建立片客户端服务 Socket s=new Socket("localhost",10009); //客户端资源 File file=new File("d:\\1.jpg"); //获取文件名 String filename=file.getName(); //获取打印流,并将文件名发送到服务端,true表示自动刷新 PrintWriter pw=new PrintWriter(s.getOutputStream(),true); pw.println(filename); //字节缓冲流读取文件 BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file)); //字节缓冲输出流 BufferedOutputStream bosOut=new BufferedOutputStream(s.getOutputStream()); int len=0; while((len=bis.read())!=-1) { bosOut.write(len); bosOut.flush(); } //增加结束标记 s.shutdownOutput(); //字节缓冲输入流,用于接收服务端发回的数据 BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream())); String rep=br.readLine(); System.out.println(rep); bis.close(); s.close(); }}/*服务端1.建立服务端服务,并指定端口2.接收客户端发送的文件名,读取客户端发送的数据3.通过Scoket,输出流将数据写在服务端文件4.发送返回信息5.关流Socket和流资源*/class UploadServer1{ public static void main(String[] args) throws Exception { //建立服务端服务,指定端口 ServerSocket ss=new ServerSocket(10009); //建立客户端Socket对象 Socket s=ss.accept(); //字节缓冲输入流,用于接收服务端发回的数据 BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream())); String filename=br.readLine(); System.out.println(filename); //文件读取流 BufferedInputStream bisIn=new BufferedInputStream(s.getInputStream()); //建立服务端文件 File file=new File("f:\\",filename); if(file.exists()) { //如果文件存在就重命名 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd HHmmss"); Date date=new Date(); String time=sdf.format(date); //只获取文件名的部分 String name=filename.substring(0,filename.indexOf(".")); String prefix=name+time; //扩展名 String suffix=filename.substring(filename.indexOf(".")); filename=prefix+suffix; //重新指定文件 file=new File("f:\\",filename); } FileOutputStream fos=new FileOutputStream(file); byte[] bufw=new byte[1024]; int len=0; while((len=bisIn.read(bufw))!=-1) { fos.write(bufw,0,len); } PrintWriter pw=new PrintWriter(s.getOutputStream(),true); pw.println("上传成功"); fos.close(); s.close(); ss.close(); }}
原标题:JAVA基础学习day25
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。