Java--文件传输

来源:互联网 发布:新加坡留学知乎 编辑:程序博客网 时间:2024/06/04 23:34

文件接收

import java.io.DataInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;/** *  * @author GDL *  */public class RecFileServer {    public static final int FILE_PORT = 8900;//定义端口号    public static void main(String[] args) throws IOException {        RecFileServer rfs = new RecFileServer();        rfs.rs();    }    private void rs() throws IOException {        ServerSocket ss = new ServerSocket(FILE_PORT);        while (true) {            Socket s = ss.accept();            InputStream is = s.getInputStream();            DataInputStream dis = new DataInputStream(is);            String fileName = dis.readUTF();            File file = new File(fileName);            //文件存在就删除            if (file.exists()) {                file.delete();            }            //先创建文件,再传送文件内容            file.createNewFile();            FileOutputStream fos = new FileOutputStream(file);            byte[] bs = new byte[1024];            int l = -1;            //每次读取到数组中,再写到本地,接着遍历文件重复,直到全部读取完            while ((l = dis.read(bs, 0, bs.length)) > 0) {                fos.write(bs, 0, l);                fos.flush();            }            fos.close();            dis.close();            is.close();            s.close();        }    }}

文件发送

import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner;public class SendFileClient {    public static void main(String[] args) throws UnknownHostException,            IOException {        SendFileClient sfc = new SendFileClient();        sfc.sf();    }    Scanner scanner = new Scanner(System.in);    public static final int FILE_PORT = 8900;    private void sf() throws UnknownHostException, IOException {        System.out.println("源文件:");        String src = scanner.nextLine();        System.out.println("目标ip::");        String ip = scanner.nextLine();        System.out.println("目标文件:");        String to = scanner.nextLine();        Socket s = new Socket(ip, FILE_PORT);        File file = new File(src);        FileInputStream fis = new FileInputStream(file);        byte[] bs = new byte[1024];        int l = -1;        while ((l = fis.read(bs, 0, bs.length)) > 0) {            os.write(bs, 0, l);            os.flush();        }        fis.close();        dos.close();        os.close();        s.close();    }}
0 0
原创粉丝点击