发送文件地址,通过服务器下载程序(Java)

    技术2022-07-11  156

    客户端:

    import java.io.*; import java.net.Socket; import java.util.Scanner; /** * Created by Administrator on 2020/6/30. */ public class socket_file01 { public static void main(String[] args) throws IOException { File file =getfile(); Socket socket = new Socket("127.0.0.1",12345); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintStream ps = new PrintStream(socket.getOutputStream()); //输出流 ps.println(file.getName()); String result = br.readLine(); if("存在".equals(result)){ System.out.println("上传的文件已经存在"); socket.close(); return; } FileInputStream fis =new FileInputStream(file); byte[] arr =new byte[8192]; int len; while ((len=fis.read(arr))!=-1){ ps.write(arr,0,len); } fis.close(); socket.close(); } private static File getfile() { Scanner sc = new Scanner(System.in); System.out.println("输入文件路径"); while (true){ String line = sc.nextLine(); File file = new File(line); if (!file.exists()) { System.out.println("文件不存在"); }else if(file.isDirectory()){ System.out.println("录入的为文件夹"); }else { return file; } } } }

    服务器端:

    import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * Created by Administrator on 2020/6/30. */ public class socket_file02 { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(12345) ; System.out.println("服务器启动"); while (true){ Socket socket = server.accept(); new Thread(){ public void run(){ try { InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); PrintStream ps = new PrintStream(socket.getOutputStream()); //输出流 String filename = br.readLine(); File dir = new File("updta"); dir.mkdir(); //创建文件夹 File file = new File(dir,filename); if(file.exists()){ ps.println("存在"); socket.close(); return; }else{ ps.println("不存在"); } FileOutputStream fos = new FileOutputStream(file); byte[] arr =new byte[8192]; int len; while ((len=is.read(arr))!=-1){ fos.write(arr,0,len); } fos.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } } }

     

    Processed: 0.018, SQL: 9