ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-12-02 01:32:15  阅读:142  来源: 互联网

标签:java bos --- io new close import 服务端 客户端


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;

    }
}

 

标签:java,bos,---,io,new,close,import,服务端,客户端
来源: https://www.cnblogs.com/javaling/p/15631464.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有