文件上传(客户端---服务端)

发布时间:2022-06-29 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了文件上传(客户端---服务端)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
package upload;

import util.StreamUtil;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileinputStream;
import java.io.IOException;
import java.net.inetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * Copyright (C), 2018-2021, Mr.Lin
 * Author: Mr.Lin
 * Date: 2021/12/1 23:23
 * FileName: TCPFileUploadCliet
 * Description: 文件上传的客户端
 */
public class TCPFileUploadCliet {
    public static void main(String[] args) throws IOException {

        //连接服务端端口
        Socket socket = new Socket(InetAddress.getLocalHost(),7777);
        String fildPath="E:\Mu\1.png";
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fildPath));

        byte[] bytes = StreamUtil.streamToByteArray(bis);
//通过socket获取到输出流,将bytes数据发送到服务端
        BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
        //将字节流数组内容写入到数据通道
        bos.wrITe(bytes);
        bis.close();
        socket.shutdownOutput();//设置写入数据的结束标记

        bos.close();
        socket.close();



    }
}
package upload;

import com.sun.org.apache.bcel.internal.generic.NEW;
import util.StreamUtil;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Copyright (C), 2018-2021, Mr.Lin
 * Author: Mr.Lin
 * Date: 2021/12/1 23:24
 * FileName: TCPFileUploadServer
 * Description: 文件上传服务端
 */
public class TCPFileUploadServer {
    public static void main(String[] args) throws IOException {
        //创建监听端口
        ServerSocket serverSocket = new ServerSocket(7777);
        //等待连接
        Socket socet = serverSocket.accept();

        BufferedInputStream bis = new BufferedInputStream(socet.getInputStream());

        byte[] b = StreamUtil.streamToByteArray(bis);
        String filPath="E:\Mu1\1.png";
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filPath));
        bos.write(b);
        bos.close();


        bis.close();
        socet.close();
        serverSocket.close();


    }
}

自制工具类

package util;

import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * Copyright (C), 2018-2021, Mr.Lin
 * Author: Mr.Lin
 * Date: 2021/12/1 23:35
 * FileName: StreamUtil
 * Description:字节转换工具
 */
public class StreamUtil {
    /**
     * 功能:将输入流转换成byte[],即可以把文件类容读入到byte[]
     * @param is
     * @return
     * @throws IOException
     */
    public static byte[] streamToByteArray(InputStream is) throws IOException {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();//创建访问数组输出流对象
        byte[] b = new byte[1024];//字节数
        int len;
        while ((len=is.read(b))!=-1){//循环读取
            bos.write(b,0,len);//把读取的数据写入到数组流中
        }
        byte[] array=bos.toByteArray();
        bos.close();
        return array;

    }
}

 

脚本宝典总结

以上是脚本宝典为你收集整理的文件上传(客户端---服务端)全部内容,希望文章能够帮你解决文件上传(客户端---服务端)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。