读取本地文件和下载网络文件到本地

本文介绍了一个Java程序如何从本地文件中读取特定格式的数据,并根据这些数据下载网络文件到指定目录的过程。该程序首先检查文件是否存在,然后逐行读取文件内容并解析出下载链接及日期信息,最后根据解析得到的信息下载文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//"D:\\json.txt"                     '/download/file/_2017_07_31_170731101132vHYeKJNW.json'...
 public static void readTxtFile() {
	        try {
	            File file = new File("D:\\json.txt");
	            if (file.isFile() && file.exists()) {//是文件并且存在
	                InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
	                BufferedReader br = new BufferedReader(isr);
	                String lineTxt = null;
	                while ((lineTxt = br.readLine()) != null) {
	                	String endurl=lineTxt.substring(1, lineTxt.length()-1);//  download/file/_2017_07_31_170731101132vHYeKJNW.json
	                	String file1=endurl.substring(16, 20);//2017
	                	String file2=endurl.substring(21, 23);//07
	                	String file3=endurl.substring(24, 26);//31
	                	String file4=endurl.substring(27, endurl.length());//170731101132vHYeKJNW.json
	                	downloadNet(endurl,file1,file2,file3,file4);  //下载
	                }
	                br.close();
	            } else {
	                System.out.println("文件不存在!");
	            }
	        } catch (Exception e) {
	            System.out.println("文件读取错误!");
	        }

	    }

 public static void downloadNet(String endurl,String file1,String file2,String file3,String file4) throws MalformedURLException {
	        // 下载网络文件
	        int byteread = 0;
	        URL url = new URL("http://XX.../"+endurl);
	        try {
	            URLConnection conn = url.openConnection();
	            InputStream inStream = conn.getInputStream();
	            File f1=new File("d:/"+file1+"/"+file2+"/"+file3);
	            if(!f1.exists()){//如果目录不存在则创建目录
	            	f1.mkdirs();
	            }
	            File file = new File("d:/"+file1+"/"+file2+"/"+file3+"/"+file4);  //文件目录
	            if(file.exists()){//如果文件有重复的输出查看
	            	System.out.println(file);
	            }
	            FileOutputStream fs = new FileOutputStream(file);//下载到文件
	            byte[] buffer = new byte[1204];
	            int length;
	            while ((byteread = inStream.read(buffer)) != -1) {
	                fs.write(buffer, 0, byteread);
	            }
	        } catch (FileNotFoundException e) {
	            e.printStackTrace();
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值