java实现文件传输

时间:2021-11-07 16:59:52

在windows下装了个linux虚拟机,两者之间传输文件挺麻烦的.写了个简单的文件传输程序,来方便自己数据传送.

server 端:

java实现文件传输import java.io.BufferedReader;
java实现文件传输import java.io.BufferedWriter;
java实现文件传输import java.io.File;
java实现文件传输import java.io.FileOutputStream;
java实现文件传输import java.io.InputStream;
java实现文件传输import java.io.InputStreamReader;
java实现文件传输import java.io.OutputStreamWriter;
java实现文件传输import java.io.PrintWriter;
java实现文件传输import java.net.ServerSocket;
java实现文件传输import java.net.Socket;
java实现文件传输
java实现文件传输java实现文件传输class CPThread extends Thread...{
java实现文件传输    Socket socket = null;
java实现文件传输java实现文件传输    public CPThread(Socket socket)...{
java实现文件传输        this.socket = socket;
java实现文件传输    }
java实现文件传输java实现文件传输    public void run()...{
java实现文件传输java实现文件传输        try...{
java实现文件传输            InputStream in = 
java实现文件传输                      socket.getInputStream();
java实现文件传输            PrintWriter out = 
java实现文件传输                  new PrintWriter(
java实现文件传输                    new BufferedWriter(
java实现文件传输                      new OutputStreamWriter(
java实现文件传输                        socket.getOutputStream())),true);
java实现文件传输            
java实现文件传输            while(true)
java实现文件传输java实现文件传输            ...{
java实现文件传输                //第一个參数为命令
java实现文件传输                byte cmd[] = new byte[128];
java实现文件传输                int b = 0;
java实现文件传输java实现文件传输                while(b<cmd.length)...{
java实现文件传输                    b += in.read(cmd, b, cmd.length-b);
java实现文件传输                }
java实现文件传输                int ends = 0;
java实现文件传输java实现文件传输                for(int i=0;i<cmd.length;i++)...{
java实现文件传输java实现文件传输                    if(cmd[i]=='-0')...{
java实现文件传输                        ends = i;
java实现文件传输                        break;
java实现文件传输                    }
java实现文件传输                }
java实现文件传输                String cmds = new String(cmd,0,ends);
java实现文件传输java实现文件传输                if("exit".equals(cmds))...{
java实现文件传输                    System.exit(0);
java实现文件传输                }
java实现文件传输java实现文件传输                else if("cp".equals(cmds))...{
java实现文件传输                    byte[] filename = new byte[256];
java实现文件传输                    b = 0;
java实现文件传输java实现文件传输                    while(b<filename.length)...{
java实现文件传输                        b += in.read(filename, b, filename.length-b);
java实现文件传输                    }
java实现文件传输                    ends = 0;
java实现文件传输java实现文件传输                    for(int i=0;i<filename.length;i++)...{
java实现文件传输java实现文件传输                        if(filename[i]=='-0')...{
java实现文件传输                            ends = i;
java实现文件传输                            break;
java实现文件传输                        }
java实现文件传输                    }
java实现文件传输                    String filenames = new String(filename,0,ends);
java实现文件传输                    File fileout = new File(filenames);
java实现文件传输java实现文件传输                    if(fileout.isFile())...{
java实现文件传输                        throw new Exception("file exists"+fileout.getAbsolutePath());
java实现文件传输                    }
java实现文件传输                    FileOutputStream fos = new FileOutputStream(fileout);
java实现文件传输                    
java实现文件传输                    byte[] filesize = new byte[64];
java实现文件传输                    b = 0;
java实现文件传输java实现文件传输                    while(b<filesize.length)...{
java实现文件传输                        b += in.read(filesize, b, filesize.length-b);
java实现文件传输                    }
java实现文件传输                    
java实现文件传输                    ends = 0;
java实现文件传输java实现文件传输                    for(int i=0;i<filesize.length;i++)...{
java实现文件传输java实现文件传输                        if(filesize[i]=='-0')...{
java实现文件传输                            ends = i;
java实现文件传输                            break;
java实现文件传输                        }
java实现文件传输                    }
java实现文件传输                    String filesizes = new String(filesize,0,ends);
java实现文件传输                    
java实现文件传输                    System.out.println("filesize:"+filesizes);
java实现文件传输                    int ta = Integer.parseInt(filesizes);
java实现文件传输                    byte[] buf = new byte[1024*10];
java实现文件传输                    //InputStream ins = socket.getInputStream();
java实现文件传输java实现文件传输                    while(true)...{
java实现文件传输java实现文件传输                        if(ta==0)...{
java实现文件传输                            break;
java实现文件传输                        }
java实现文件传输                        int len = ta;
java实现文件传输java实现文件传输                        if(len>buf.length)...{
java实现文件传输                            len = buf.length;
java实现文件传输                        }
java实现文件传输                        int rlen = in.read(buf, 0, len);
java实现文件传输                        
java实现文件传输                        //int rlen = ins.read(buf, 0, len);
java实现文件传输                        ta -= rlen;
java实现文件传输java实现文件传输                        if(rlen>0)...{
java实现文件传输                            fos.write(buf,0,rlen);
java实现文件传输                            fos.flush();
java实现文件传输                        }
java实现文件传输java实现文件传输                        else...{
java实现文件传输                            break;
java实现文件传输                        }
java实现文件传输                    }
java实现文件传输                    out.println("cp finish!");
java实现文件传输                    fos.close();
java实现文件传输                    break;
java实现文件传输                }
java实现文件传输java实现文件传输                else...{
java实现文件传输                    System.out.println("err command!");
java实现文件传输                    out.println("err command!");
java实现文件传输                    break;
java实现文件传输                }
java实现文件传输            }
java实现文件传输            socket.close();
java实现文件传输java实现文件传输        }catch(Exception e)...{
java实现文件传输            e.printStackTrace();
java实现文件传输            
java实现文件传输        }
java实现文件传输    }
java实现文件传输}
java实现文件传输java实现文件传输public class JCPServer ...{
java实现文件传输
java实现文件传输java实现文件传输    /** *//**
java实现文件传输     * @param args
java实现文件传输     */
java实现文件传输java实现文件传输    public static void main(String[] args) throws Exception ...{
java实现文件传输        // TODO Auto-generated method stub
java实现文件传输        int num = args.length;
java实现文件传输java实现文件传输        if(num<=0)...{
java实现文件传输            System.out.println("please input server port!");
java实现文件传输            System.exit(0);
java实现文件传输        }
java实现文件传输        int port = Integer.parseInt(args[0]);
java实现文件传输        System.out.println("you input port:"+port);
java实现文件传输        //绑定接受数据端口
java实现文件传输        ServerSocket s = new ServerSocket(port);
java实现文件传输java实现文件传输        while(true)...{
java实现文件传输            Socket socket = s.accept();
java实现文件传输            new CPThread(socket).start();
java实现文件传输        }
java实现文件传输    }
java实现文件传输
java实现文件传输}
java实现文件传输

client 端

java实现文件传输import java.io.BufferedWriter;
java实现文件传输import java.io.File;
java实现文件传输import java.io.FileInputStream;
java实现文件传输import java.io.OutputStream;
java实现文件传输import java.io.OutputStreamWriter;
java实现文件传输import java.io.PrintWriter;
java实现文件传输import java.net.InetAddress;
java实现文件传输import java.net.Socket;
java实现文件传输
java实现文件传输
java实现文件传输java实现文件传输public class JCPClient ...{
java实现文件传输
java实现文件传输java实现文件传输    /** *//**
java实现文件传输     * @param args
java实现文件传输     */
java实现文件传输java实现文件传输    public static void main(String[] args)throws Exception ...{
java实现文件传输        // TODO Auto-generated method stub
java实现文件传输        int num = args.length;
java实现文件传输java实现文件传输        if(num<=3)...{
java实现文件传输            System.out.println("please input server ip port filefrom fileto!");
java实现文件传输            System.exit(0);
java实现文件传输        }
java实现文件传输        System.out.println("host:"+args[0]);
java实现文件传输        System.out.println("port:"+args[1]);
java实现文件传输        System.out.println("filefrom:"+args[2]);
java实现文件传输        System.out.println("fileto:"+args[3]);
java实现文件传输        InetAddress addr = InetAddress.getByName(args[0]);
java实现文件传输        Socket socket = 
java实现文件传输              new Socket(addr, Integer.parseInt(args[1]));
java实现文件传输        OutputStream out = socket.getOutputStream();
java实现文件传输        byte[] cmd = new byte[128];
java实现文件传输        byte[] tcmd = "cp".getBytes();
java实现文件传输java实现文件传输        for(int i=0;i<tcmd.length;i++)...{
java实现文件传输            cmd[i] = tcmd[i];
java实现文件传输        }
java实现文件传输        cmd[tcmd.length] = '-0';
java实现文件传输        out.write(cmd,0,cmd.length);
java实现文件传输        //文件名称
java实现文件传输        byte[] file = new byte[256];
java实现文件传输        byte[] tfile = args[3].getBytes();
java实现文件传输java实现文件传输        for(int i=0;i<tfile.length;i++)...{
java实现文件传输            file[i] = tfile[i];
java实现文件传输        }
java实现文件传输        file[tfile.length] = '-0';
java实现文件传输        out.write(file,0,file.length);
java实现文件传输        
java实现文件传输        //大小
java实现文件传输        File filein = new File(args[2]);
java实现文件传输        byte[] size = new byte[64];
java实现文件传输        byte[] tsize = (""+filein.length()).getBytes();
java实现文件传输        
java实现文件传输java实现文件传输        for(int i=0;i<tsize.length;i++)...{
java实现文件传输            size[i] = tsize[i];
java实现文件传输        }
java实现文件传输        size[tsize.length] = '-0';
java实现文件传输        out.write(size,0,size.length);
java实现文件传输        
java实现文件传输        FileInputStream fis = null;
java实现文件传输        byte[] buf = new byte[1024*10];
java实现文件传输        //char[] bufC = new char[1024*10];
java实现文件传输        fis = new FileInputStream(filein);
java实现文件传输        int readsize = 0;
java实现文件传输        //OutputStream ops = socket.getOutputStream();
java实现文件传输java实现文件传输        while((readsize = fis.read(buf, 0, buf.length))>0)...{
java实现文件传输            out.write(buf,0,readsize);
java实现文件传输            out.flush();
java实现文件传输        }
java实现文件传输        socket.close();
java实现文件传输    }
java实现文件传输
java实现文件传输}
java实现文件传输