java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
本篇文章主要介绍了 java 实现文件保存到本地的方法, 小编觉得挺不错的, 现在分享给大家, 也给大家做个参考一起跟随小编过来看看吧
本篇介绍了 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;
- }
- }
- }
来源: http://www.phperz.com/article/18/0214/358638.html