精华内容
下载资源
问答
  • 本篇文章主要介绍了java实现文件保存本地的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • java写入文件保存本地

    千次阅读 2019-10-16 10:29:28
    //将数据写入.json文件--start BufferedWriter writer = null; try { writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f,false), "UTF-8")); writer.write(jsonString); ...
    		//要写入的数据
    	   String jsonString = json.toJSONString();
    	   //存放位置     Windows下为D:/test.txt
    	   File f = new File("/APP/WEAVER/ecology/mobile/plugin/tdtech/departmenttree/testjson.json");
    	   //将数据写入.json文件--start
    	   BufferedWriter writer = null; 
    	   try {  
    	        writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f,false), "UTF-8"));  
    	        writer.write(jsonString);  
    	    } catch (IOException e) {  
    	        e.printStackTrace();  
    	    }finally {  
    	        try {  
    	            if(writer != null){  
    	                writer.close();  
    	            }  
    	        } catch (IOException e) {  
    	            e.printStackTrace();  
    	        }  
    	    }  
    
    展开全文
  • java 文件保存本地

    万次阅读 2018-12-07 17:33:37
    private void savePic(InputStream inputStream, String fileName) { OutputStream os = null; try { String path = "D:\\testFile\\"; // 2、保存到临时文件 // 1K的数...
    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;
            }
        }
    
        /**
         * <p class="detail">
         * 功能:文件上传
         * </p>
         *
         * @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;
            }
        }
    
    }
    
    展开全文
  • java下载远程url文件保存本地 使用URL下载远程文件保存本地 一、需求说明 1、项目中使用到一个第三方插件,因插件经常更新,人工一次次的替换,很麻烦。于是乎有了需求,使用代码实现后台自动下载更新。 2...

          java下载远程url文件保存到本地 使用URL下载远程文件保存到本地

     

    一、需求说明

    1、项目中使用到一个第三方插件,因插件经常更新,人工一次次的替换,很麻烦。于是乎有了需求,使用代码实现后台自动下载更新。

    2、因是java的服务端项目,这里使用JDK提供的 java.net.* 包的,URLHttpURLConnection 实现文件下载。

     

    二、代码如下

    1、使用url 下载远程文件

    /**
    	 * description: 使用url 下载远程文件
    	 * @param urlPath  --- url资源
    	 * @param targetDirectory --- 目标文件夹
    	 * @throws Exception
    	 * @return void
    	 * @version v1.0
    	 * @author w
    	 * @date 2019年9月3日 下午8:29:01
    	 */
    	public static void download(String urlPath , String targetDirectory) throws Exception {
    		// 解决url中可能有中文情况
    		System.out.println("url:"+ urlPath);
    		URL url = new URL(urlPath);
    		HttpURLConnection http = (HttpURLConnection)url.openConnection();
    		http.setConnectTimeout(3000);		
    		// 设置 User-Agent 避免被拦截 
    		http.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");
    		String contentType = http.getContentType();
    		System.out.println("contentType: "+ contentType);
    		// 获取文件大小 
    		long length = http.getContentLengthLong();
    		System.out.println("文件大小:"+(length / 1024)+"KB");
    		// 获取文件名
    		String fileName = getFileName(http , urlPath);
    		InputStream inputStream = http.getInputStream();
    		byte[] buff = new byte[1024*10];
    		OutputStream out = new FileOutputStream(new File(targetDirectory,fileName));
    		int len ;
    		int count = 0; // 计数
    		while((len = inputStream.read(buff)) != -1) {
    			out.write(buff, 0, len);
    			out.flush();
    			++count ;
    		}
    		System.out.println("count:"+ count);
    		// 关闭资源
    		out.close();
    		inputStream.close();
    		http.disconnect();
    	}

     

    2、获取文件名

    /**
    	 * description: 获取文件名 
    	 * @param http
    	 * @param urlPath
    	 * @throws UnsupportedEncodingException
    	 * @return String
    	 * @version v1.0
    	 * @author w
    	 * @date 2019年9月3日 下午8:25:55
    	 */
    	private static String getFileName(HttpURLConnection http , String urlPath) throws UnsupportedEncodingException {
    		String headerField = http.getHeaderField("Content-Disposition");
    		String fileName = null ;
    		if(null != headerField) {
    			String decode = URLDecoder.decode(headerField, "UTF-8");
    			fileName = decode.split(";")[1].split("=")[1].replaceAll("\"", "");
    			System.out.println("文件名是: "+ fileName);
    		}
    		if(null == fileName) {
    			// 尝试从url中获取文件名
    			String[] arr  = urlPath.split("/");
    			fileName = arr[arr.length - 1];
    			System.out.println("url中获取文件名:"+ fileName);
    		}
    		return fileName;
    	}

    3、测试

    public static void main(String[] args) {
    	Map<String,String> map = new HashMap<>();
    	map.put("下载图片", "http://i1.zhiaigou.com/uploads/tu/201908/9999/152a0cd3b5.jpg");
    	map.put("下载中文图片", "http://47.93.217.218/chapter/downloadServlet?fileName=%E4%B8%AD%E6%96%87%E5%9B%BE%E7%89%87.jpg");
    	map.put("下载QQ软件", "https://qd.myapp.com/myapp/qqteam/pcqq/PCQQ2019.exe");
    	map.put("下载带中文文件", "http://32204.xc.mieseng.com/xiaz/%E8%BF%85%E9%9B%B7%E5%A4%8D%E6%B4%BB%E7%89%88@68_416334.exe");
    map.put("该资源无法下载", "https://www.csc108.com/announcementNotice/showFile.json?id=685");
    	try {
    		for(String urlStr : map.values()) {
    			download(urlStr, "E:/");
    		}
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    		
    	System.out.println("process over ...");
    }

    4、效果如下:

     

    三、总结

    1、这里只是用简单的使用 HttpURLConnection 实现从远程服务端获取文件下载,若有更高级需求,比如 爬虫,可以考虑使用 jsoup 来实现。

    2、【二-2】中获取文件名,静态资源直接从url中获取,动态返回的文件流资源,需要从header中获取。 比如参考:https://blog.csdn.net/HaHa_Sir/article/details/79258556

    3、若服务端设置了禁用java等方式访问,该代码可能无效,回抛出异常: Server returned HTTP response code: 521 for URL: xxx . 该示例代码中没有解决这个问题!

     

     

    展开全文
  • JAVA读取远程网页文件保存本地

    热门讨论 2010-09-23 11:48:49
    JAVA读取远程网页文件保存本地 从远程URL地址获取网页文件下载到本地 这个方法可以生成静态HTML文件使用!
  • Java抓取文件保存本地

    千次阅读 2009-05-19 13:29:00
    可以抓取图片、Flash、电影/视频文件等等,保存本地目录。多用于采集系统Test.java import java.io.*;import java.net.*;public class Test { public boolean saveUrlAs(String photoUrl, String fileName) {//此...

     可以抓取图片、Flash、电影/视频文件等等,保存到本地目录。多用于采集系统

    Test.java


    import java.io.*;
    import java.net.*;

    public class Test {
     public boolean saveUrlAs(String photoUrl, String fileName) {
    //此方法只能用于HTTP协议
     try {
     URL url = new URL(photoUrl);
     HttpURLConnection connection = (HttpURLConnection) url.
     openConnection();
     DataInputStream in = new DataInputStream(connection.getInputStream());
     DataOutputStream out = new DataOutputStream(new FileOutputStream(
     fileName));
     byte[] buffer = new byte[4096];
     int count = 0;
     while ((count = in.read(buffer)) > 0) {
     out.write(buffer, 0, count);
     }
     out.close();
     in.close();
     return true;
     } catch (Exception e) {
     return false;
     }
     }

     public String getDocumentAt(String urlString) {
    //此方法兼容HTTP和FTP协议
     StringBuffer document = new StringBuffer();
     try {
     URL url = new URL(urlString);
     URLConnection conn = url.openConnection();
     BufferedReader reader = new BufferedReader(new InputStreamReader(
     conn.
     getInputStream()));
     String line = null;
     while ((line = reader.readLine()) != null) {
     document.append(line + "/n");
     }
     reader.close();
     } catch (MalformedURLException e) {
     System.out.println("Unable to connect to URL: " + urlString);
     } catch (IOException e) {
     System.out.println("IOException when connecting to URL: " +
     urlString);
     }
     return document.toString();
     }

     public static void main(String[] args) throws IOException {
     Test test = new Test();
     String photoUrl = "http://ad4.sina.com.cn/200601/12/43932_750450.jpg";
     String fileName = photoUrl.substring(photoUrl.lastIndexOf("/"));
     String filePath = "d:/";
     boolean flag = test.saveUrlAs(photoUrl, filePath + fileName);
     System.out.println("Run ok!/nGet URL file " + flag);
     }
    }
    展开全文
  • Java读取在线文件保存本地

    千次阅读 2019-08-09 10:14:19
    Java读取在线文件保存本地代码: import java.io.*; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class TST { public static void main(String[] ...
  • java 保存和读取本地文件

    万次阅读 2017-11-10 16:35:25
    保存数据到本地文件   private void saveDataToFile(String fileName,String data) { BufferedWriter writer = null; File file = new File("d:\\"+ fileName + ".json"); //如果文件不...
  • 本篇文章主要介绍了java 从服务器下载文件保存本地的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 第一种方式:保存本地 package com.cnki.tool.base; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.util.ArrayList; import java.util.List; public class ExportTxtUtil ...
  • Java 接收 URL文件保存本地 DEMO

    千次阅读 2017-03-12 19:07:19
    String photoUrl="XXX";// HTTP请求返回文件流 ... //保存文件流 // 此方法只能用户HTTP协议 URL url = new URL(photoUrl); HttpURLConnection connection = (HttpURLConnection) url.open
  • JAVA NIO 文件保存

    千次阅读 2012-05-29 14:52:05
    tag: java nio 保存文件 /** * 读取文件 * */ public ByteBuffer readFile(String filename){ FileChannel fiChannel; MappedByteBuffer mBuf=null; try { fiChannel = new FileInputStream...
  • java 保存和读取本地json文件

    千次阅读 2018-05-29 13:14:16
    private void saveDataToFile(String fileName,String data) { BufferedWriter writer = null; File file = new File("d:\\"... //如果文件不存在,则新建一个 if(!file....
  • java保存日志到本地文本文件

    万次阅读 2012-08-21 16:25:40
    /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package jcoapp; ...import java.io.*;...import java.text.SimpleDateFormat; import java.util.*;
  • java获取远程文件保存本地

    千次阅读 2019-01-09 10:21:55
    java获取远程文件保存本地   解决方法: String path="https://ssl.mail.163.com/httpsEnable.gif"; String file_name= contents.substring(contents.lastIndexOf("/")+1, ...
  • Java上传文件保存到指定路径

    千次阅读 2020-07-15 19:50:42
    Java上传文件保存到指定路径 上代码 @PostMapping("/file-upload") @ApiOperation(value = "上传swagger.json", httpMethod = "POST") public String fileUpload(@ApiParam(value = "swaggerJsonFile", required ...
  • java文件本地大小为0kb

    千次阅读 2018-10-29 20:26:09
    java在处理文件写出的时候,会用到缓冲流,如果文件必须叫小,可能还不足以填满缓冲流的默认空间大小,所以就会导致代码执行结束,但任然没有把数据写到磁盘。 这种问题是常识问题,使用流对象调用flush()方法可以...
  • import java.io.File; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.io.Writer; public class OutJson { public static void main(String[] args) { ...
  • public void downloadFile(String url, String saveAddress) { try { URL fileUrl = new URL(url); InputStream is = fileUrl.openStream(); OutputStream os = new FileOutputStream(...
  • java 从服务器下载文件保存本地

    万次阅读 热门讨论 2017-05-28 10:33:55
    昨天在做一个项目时,用到了从服务器上下载文件保存本地的知识,以前也没有接触过,昨天搞了一天,这个小功能实现了,下面就简单的说一下实现过程;  1.基础知识  当我们想要下载网站上的某个资源时,我们会...
  • 下载zip文件保存本地(JAVA)

    千次阅读 2020-09-17 19:27:43
    此篇博客为从服务器下载zip文件然后保存本地的记录; 1,文件下载步骤: (1)通过统一资源定位器(java.net.URL)获取连接器(java.net.URLConnection)。 (2)通过HttpURLConnection设置请求参数,并发送请求,然后...
  • java 将代理对象保存本地文件

    千次阅读 2016-01-14 13:57:52
    我们知道,在Java中,常用的...下面,我就提供一种方式,可以将通过动态代理创建的代理对象的字节码文件保存到磁盘,再通过反编译工具查看生成文件的内容,这样就可以加深我们对于代理对象的理解。  JDK的动态代理
  • 新年第一章,祝大家新年快乐。...这次是使用Java Socket令Client与Server通信,以文本文档的形式上传一个查询结果到服务器的功能,另外利用还有file保存本地的功能。 查询是基于Sql Server中的一个很简易的数据库中
  • java 生成Excel及pdf 返回http和保存本地实例记录 先看效果图 1.生成效果图 2.excel maven包配置 &lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; &lt;...
  • Java 保存对象到本地

    千次阅读 2018-07-20 11:46:48
    将对象保存本地第一时间一般想到的都是ObjectOutput,但是我在网上无意中发现还可以将对象转为json字符串来保存,于是让我有种恍然大悟的感觉,我们在保存对象时候有时候并不需要保存信息,有时候只需要保存对这个...
  • java下载网络图片到本地保存

    热门讨论 2012-09-16 14:18:36
    java下载网络图片到本地保存,还有一个配置文件,用来配置url和保存地址。
  • java实现录音并保存本地文件

    千次阅读 2015-07-24 21:58:23
    package com.mytest.recorder; import com.recorder.test.AudioRecorder; import java.io.File; import java.util.Scanner; import javax.sound.sampled.AudioFileFormat; import javax.sound.sampled.AudioFormat;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 311,537
精华内容 124,614
关键字:

java大文件保存本地

java 订阅