zoukankan      html  css  js  c++  java
  • 综合案例:文件上传

    package day14;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;

    public class TCPServer {
    public static void main(String[] args) throws IOException {
    //1. 创建一个服务器ServerSocket对象,和系统要指定的端口号。
    ServerSocket server = new ServerSocket(8888);
    //2. 使用ServerSocket对象中的方法accept,获取到请求的客户端Socket对象
    Socket socket = server.accept();
    //3. 使用Socket对象中的方法getInputStream,获取网络字节输入流InputStream对象
    InputStream is = socket.getInputStream();
    //4. 判断上传的文件夹是否存在,不存在则创建
    File file = new File("C:aupload");
    if (!file.exists()){
    file.mkdirs();
    }
    //5. 创建一个本地字节输出流FileOutputStream对象,构造方法中绑定要输出的目的地。
    FileOutputStream fos = new FileOutputStream(file+"a.txt");
    //6. 使用网络字节输入流InputStream对象中的方法read,读取客户端上传的文件。
    int len = 0;
    byte[] bytes = new byte[1024];
    while((len = is.read(bytes))!=-1){
    //7. 使用本地字节输出流FileOutputStream对象中的方法write,把读取到的文件保存到服务器的硬盘上。
    fos.write(bytes,0,len);
    }
    //8. 使用Socket对象中的方法getOutputStream,获取到网络字节输出流OutputStream对象。
    //9. 使用网络字节输出流OutputStream对象中的方法write,给客户端回写“上传成功”
    socket.getOutputStream().write("上传成功".getBytes());
    //10. 释放资源。
    fos.close();
    socket.close();
    server.close();
    }
    }

  • 相关阅读:
    Canvas文本绘制
    Canvas贝塞尔三级曲线
    Canvas贝塞尔二级曲线
    Canvas arcTo绘制圆弧
    mybatis springmvc调用oracle存储过程,返回记录集
    java调用oracle存储过程,返回结果集
    oracle存储过程返回结果集
    存储过程变量类型定义与表字段一致
    HTML5获取当前的经纬度坐标
    实现精灵沿着圆形轨迹运动
  • 原文地址:https://www.cnblogs.com/Xiaoming0/p/14008327.html
Copyright © 2011-2022 走看看