首页 > 开发 > Java > 正文

java实现文件保存到本地的方法

2024-07-13 10:03:35
字体:
来源:转载
供稿:网友

本篇介绍了java实现文件保存到本地的方法,具体代码如下:

private void savePic(InputStream inputStream, String fileName) {    OutputStream os = null;    try {      String path = "D://testFile//";      // 2、保存到临时文件      // 1K的数据缓冲      byte[] bs = new byte[1024];      // 读取到的数据长度      int len;      // 输出的文件流保存到本地文件      File tempFile = new File(path);      if (!tempFile.exists()) {        tempFile.mkdirs();      }      os = new FileOutputStream(tempFile.getPath() + File.separator + fileName);      // 开始读取      while ((len = inputStream.read(bs)) != -1) {        os.write(bs, 0, len);      }    } catch (IOException e) {      e.printStackTrace();    } catch (Exception e) {      e.printStackTrace();    } finally {      // 完毕,关闭所有链接      try {        os.close();        inputStream.close();      } catch (IOException e) {        e.printStackTrace();      }    }  }

文件保存方法.

附:

package com.ebways.web.upload.controller;import java.io.*;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;import com.ebways.web.base.BaseController;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import com.ebways.web.upload.url.UploadURL;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@Controller@RequestMapping(value = UploadURL.MODE_NAME)public class UploadController extends BaseController {  @RequestMapping(value = UploadURL.IMAGE_UPLOAD)  @ResponseBody  public String uploadFile(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IllegalArgumentException, Exception {    // 参数列表    Map<String, Object> map = new HashMap<>();    map.put("file", file);    savePic(file.getInputStream(), file.getOriginalFilename());    //请求接口    String apiReturnStr = "";//apiHttpRequest(map, API_HOST_URL + "/image/upload");    return apiReturnStr;  }  private void savePic(InputStream inputStream, String fileName) {    OutputStream os = null;    try {      String path = "D://testFile//";      // 2、保存到临时文件      // 1K的数据缓冲      byte[] bs = new byte[1024];      // 读取到的数据长度      int len;      // 输出的文件流保存到本地文件      File tempFile = new File(path);      if (!tempFile.exists()) {        tempFile.mkdirs();      }      os = new FileOutputStream(tempFile.getPath() + File.separator + fileName);      // 开始读取      while ((len = inputStream.read(bs)) != -1) {        os.write(bs, 0, len);      }    } catch (IOException e) {      e.printStackTrace();    } catch (Exception e) {      e.printStackTrace();    } finally {      // 完毕,关闭所有链接      try {        os.close();        inputStream.close();      } catch (IOException e) {        e.printStackTrace();      }    }  }  /**   * <p class="detail">   * 功能:公共Action   * </p>   *   * @date 2016年9月8日   * @author wangsheng   */  private String allowSuffix = "jpg,png,gif,jpeg";//允许文件格式  private long allowSize = 2L;//允许文件大小  private String fileName;  private String[] fileNames;  public String getAllowSuffix() {    return allowSuffix;  }  public void setAllowSuffix(String allowSuffix) {    this.allowSuffix = allowSuffix;  }  public long getAllowSize() {    return allowSize * 1024 * 1024;  }  public void setAllowSize(long allowSize) {    this.allowSize = allowSize;  }  public String getFileName() {    return fileName;  }  public void setFileName(String fileName) {    this.fileName = fileName;  }  public String[] getFileNames() {    return fileNames;  }  public void setFileNames(String[] fileNames) {    this.fileNames = fileNames;  }  /**   * <p class="detail">   * 功能:重新命名文件   * </p>   *   * @return   * @author wangsheng   * @date 2016年9月8日   */  private String getFileNameNew() {    SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");    return fmt.format(new Date());  }  /**   * <p class="detail">   * 功能:文件上传   * </p>   *   * @param files   * @param destDir   * @throws Exception   * @author wangsheng   * @date 2014年9月25日   */  public void uploads(MultipartFile[] files, String destDir, HttpServletRequest request) throws Exception {    String path = request.getContextPath();    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;    try {      fileNames = new String[files.length];      int index = 0;      for (MultipartFile file : files) {        String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);        int length = getAllowSuffix().indexOf(suffix);        if (length == -1) {          throw new Exception("请上传允许格式的文件");        }        if (file.getSize() > getAllowSize()) {          throw new Exception("您上传的文件大小已经超出范围");        }        String realPath = request.getSession().getServletContext().getRealPath("/");        File destFile = new File(realPath + destDir);        if (!destFile.exists()) {          destFile.mkdirs();        }        String fileNameNew = getFileNameNew() + "." + suffix;//        File f = new File(destFile.getAbsoluteFile() + "//" + fileNameNew);        file.transferTo(f);        f.createNewFile();        fileNames[index++] = basePath + destDir + fileNameNew;      }    } catch (Exception e) {      throw e;    }  }  /**   *功能:文件上传   *   * @param file   * @param destDir   * @throws Exception   * @author wangsheng   * @date 2016年9月8日   */  public void upload(MultipartFile file, String destDir, HttpServletRequest request) throws Exception {    String path = request.getContextPath();    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;    try {      String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);      int length = getAllowSuffix().indexOf(suffix);      if (length == -1) {        throw new Exception("请上传允许格式的文件");      }      if (file.getSize() > getAllowSize()) {        throw new Exception("您上传的文件大小已经超出范围");      }      String realPath = request.getSession().getServletContext().getRealPath("/");      File destFile = new File(realPath + destDir);      if (!destFile.exists()) {        destFile.mkdirs();      }      String fileNameNew = getFileNameNew() + "." + suffix;      File f = new File(destFile.getAbsoluteFile() + "/" + fileNameNew);      file.transferTo(f);      f.createNewFile();      fileName = basePath + destDir + fileNameNew;    } catch (Exception e) {      throw e;    }  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表