精华内容
下载资源
问答
  • 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 . 该示例代码中没有解决这个问题!

     

     

    展开全文
  • hive查询结果保存到本地

    千次阅读 2018-10-22 15:13:58
    使用hive查询,结果我们通常会保存到hdfs,然后通过sqoop导出工具,将其导出外部mysql或者其他地方,但是有时候查询结果就是一个...但是我们可以通过将结果保存到本地文件,然后读取本地文件就可以解决这个问题了...

    使用hive查询,结果我们通常会保存到hdfs,然后通过sqoop导出工具,将其导出到外部mysql或者其他地方,但是有时候查询结果就是一个数据,比如count(*)的结果,我们希望直接保存到一个中间变量,然后就可以直接将这个结果写入到mysql。
    而hive按照条件查询一般会有很多output输出,很难直接捕获到结果。
    在这里插入图片描述
    但是我们可以通过将结果保存到本地文件,然后读取本地文件就可以解决这个问题了。
    有两种解决办法:

    1、通过输出流重定向的方式将查询结果输入到文件

    hive -e "use domestic;select count(*) from uv where thedate=20181021" > /tmp/uv.txt
    

    运行截图:
    在这里插入图片描述

    2、通过hive提供的overwrite语法将结果保存到本地文件夹中:

    hive -e "use domestic;insert overwrite local directory '/tmp/uv-local' select count(*) from uv where thedate=20181021"
    

    同样的运行结果会保存在本地的/tmp/uv-local文件夹下:

    [lestat@localhost uv]$ cd /tmp/uv-local/
    [lestat@localhost uv-local]$ ls
    000000_0
    [lestat@localhost uv-local]$ cat 000000_0 
    2666922
    [lestat@PUSH-009 uv-local]$ 
    

    结果直接保存在了文件里面,没有额外的信息,这就很好办了,接下来可以通过cat /tmp/uv-local/000000_0就可以取得结果。在sh脚本中就可以使用这个值了。

    展开全文
  • Bitmap保存到本地

    千次阅读 2015-09-24 14:12:00
    /* 保存方法 / public void saveBitmap() { Log.e(TAG, “保存图片”); File f = new File(“/sdcard/namecard/”, picName); if (f.exists()) { f.delete(); } try { FileOutputStream out = new ...

    /* 保存方法 /
    public void saveBitmap() {
    Log.e(TAG, “保存图片”);
    File f = new File(“/sdcard/namecard/”, picName);
    if (f.exists()) {
    f.delete();
    }
    try {
    FileOutputStream out = new FileOutputStream(f);
    bm.compress(Bitmap.CompressFormat.PNG, 90, out);
    out.flush();
    out.close();
    Log.i(TAG, “已经保存”);
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }

    在这里还需要两个权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    
    展开全文
  • 有时候我们需要将list集合保存到本地,自己写起来太麻烦,就找到了强大的框架LItePal,git地址:https://github.com/LitePalFramework/LitePal 本文来自:...

    有时候我们需要将list集合保存到本地,自己写起来太麻烦,就找到了强大的框架LItePal,git地址  https://github.com/LitePalFramework/LitePal

    本文来自:http://blog.csdn.net/elinavampire/article/details/40621751

    导入jar包就可以使用了,直接上代码:

    package com.sdufe.litepal;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.litepal.crud.DataSupport;
    import org.litepal.tablemanager.Connector;
    
    import android.app.Activity;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.widget.TextView;
    
    import com.sdufe.litepal.model.Student;
    
    /**
     * @author 子墨
     *
     * 2014-10-30
     */
    public class MainActivity extends Activity {
    
    	private SQLiteDatabase db;
    	private List<Student> list;
    	private Student student;
    	private TextView mInformation;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		mInformation = (TextView) findViewById(R.id.student_information);
    		// 生成student表
    		db = Connector.getDatabase();
    		
    		initDate();
    		
    		//保存
    		DataSupport.saveAll(list);
    		
    		//查找
    		student = DataSupport.find(Student.class, 3);
    		mInformation.setText("姓名:" + student.getName() + "学号:"
    				+ student.getNumber() + "性别:" + student.getSex());
    		
    		//更新
    		student=new Student();
    		student.setName("吸血鬼");
    		student.update(4);
    		
    		//删除
    		DataSupport.delete(Student.class, 4);
    	}
    
    	/**
    	 * 表中数据赋值
    	 */
    	private void initDate() {
    
    		list.add(new Student(5, "20100854213", "klaus", "男"));
    		list.add(new Student(6, "20100854213", "klaus", "男"));
    		list.add(new Student(7, "20100854213", "klaus", "男"));
    		list.add(new Student(8, "20100854213", "klaus", "男"));
    		list.add(new Student(9, "20100854213", "klaus", "男"));
    	}
    
    }
    

    都很简单,主要是人家源码太强大,直接抓来用就好,我的list保存主要是通过saveall实现


    还有一点要注意的就是在assets文件夹下新建litepal.xml,不要忘记去配置它:

    <?xml version="1.0" encoding="utf-8"?>
    <litepal>
    	<!-- 数据库库名 -->
        <dbname value="students" >
        </dbname>
    	<!-- 版本号 -->
        <version value="1" >
        </version>
    
        <list>
            <mapping class="com.sdufe.litepal.model.Student"></mapping>
        </list>
    
    </litepal>

    代码地址:http://download.csdn.net/detail/elinavampire/8101117
    展开全文
  • Typora图片保存到本地

    千次阅读 2020-12-27 21:30:38
    一.问题 我们使用word、onenote时图片都是直接保存在文件中,而typora...这种方法可以插入图片时自动保存到本地。若我们想要把笔记打包时,选择导出pdf的方式即可。 1.相应路径创建images文件夹用来保存图片 推荐创
  • Android 下载网络图片保存到本地

    万次阅读 2014-08-25 13:17:23
    Android 下载网络图片保存到本地
  • bitmap保存到本地图片的方法

    万次阅读 2018-09-28 20:09:40
    * 保存bitmap到本地 * * @param bitmap Bitmap */ public static void saveBitmap(Bitmap bitmap,String path) { String savePath; File filePic; if (Environment.getExternalStorageState().equal...
  • android 视频录制 并保存到本地

    热门讨论 2016-07-27 16:37:44
    android 视频录制 并且保存到本地 注意 保存到sd卡 必须 自己手动创建文件夹 PathUtil 类 dir 的参数 自己改
  • 安卓保存bitmap到本地

    千次阅读 2018-01-26 12:16:03
    用picasso的时候,想把获取的的bitmap保存到本地: Picasso.with(getActivity()).load(imgUrls.get(position)).into(new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.Loa...
  • Flutter 图片保存到本地

    千次阅读 2019-10-29 15:17:37
    保存图片手机 参考网址: image_gallery_saver 使用方式: import 'package:image_gallery_saver/image_gallery_saver.dart'; import 'package:flutter/services.dart' show rootBundle; import...
  • 有时候我们的开发需求中需要截图,并且保存图片到本地相册,或者是长按图片保存到本地。不多说,用代码说话: 我代码中的注释写得特别详细,相信你一看就懂! -(void)buttonAction:(UIButton *)btn { //此处我只写...
  • Canvas输出图片并保存到本地

    千次阅读 2018-08-23 15:14:14
    之前做手写识别的比赛,对于画板canvas写出的数字,要生成图片保存到本地,然后调用python进行识别。对图片保存经历了三个版本变更。 一、直接对屏幕进行截屏保存图片 仅停留可以实现生成图片,图片的画质还有...
  • 之前的文章介绍了如何调用摄像头间隔拍照并保存图片(文章链接:Python+OpenCV调用摄像头固定间隔时间拍照并保存到本地同时应用YOLO中检测目标),这篇文章再介绍一下如何调用摄像头并保存视频。 读写视频流 获取...
  • node.js抓取网络图片保存到本地,node.js抓取防盗链网络图片保存到本地
  • uniapp 保存图片到本地

    千次阅读 2019-12-03 17:53:49
    保存到本地 @params url 网络图片 */ saveImg(url) { const that = this; uni.downloadFile({ url, success: res => { if (res.statusCode === 200) { uni....
  • Android 保存图片到本地

    千次阅读 2017-10-27 20:33:56
    Android下载图片到本地
  • 关于access_token保存到本地的方法

    千次阅读 2017-10-30 18:44:12
    关于access_token保存到本地的方法
  • 爬取图片并保存到本地

    千次阅读 2018-11-07 13:09:58
    爬取图片保存到本地网址代码结果 网址 爬取百度百科爱因斯坦图片,并保存到 C:\pictures\ 下 https://baike.baidu.com/item/阿尔伯特·爱因斯坦/127535?fromtitle=爱因斯坦&amp;amp;fromid=122624&amp;amp;...
  • 小程序保存图片到本地相册

    千次阅读 2019-06-18 10:06:40
    项目中需要保存带有水印的图片到本地相册。 现在图片上的水印是我拿二维码定位图片上做展示效果,所以真正带水印的图片是要点击保存的时候从后台获取当前展示的图片的带水印图片,现在这是一个不自己切换的...
  • C# 将二进制字符串保存到本地

    千次阅读 2014-03-07 09:24:08
    #region 将文件保存到本地 /// /// 将文件保存到本地 /// /// 文件的二进制数据字符串 /// 文件名称,必须带后缀 private void SaveFile(string psContent, string psFileName) {
  • canvas保存到本地图片三种方法

    万次阅读 2019-07-26 20:43:10
    canvas保存本地图片三种方法canvas保存本地图片第一种方法(修改图片的媒体类型,window.open直接下载)第二种方法(创建a标签,通过自己触发点击来下载)第三种方法(将图片数据转换成Blob数据,可以保存大图片)...
  • outlook2016将邮件保存到本地

    万次阅读 2018-12-04 10:43:43
    1.以下是将收件箱的邮件保存到本地 文档链接:http://www.meiriyixue.cn/post/216.html   2.以下是将已发送邮件的邮件保存到本地  
  • 利用 python +opencv实现调用本机摄像头,按键拍照+保存图片到本地! 由于代码比较简单,直接上代码,就不过多讲解了: #coding:utf-8 import cv2 cap = cv2.VideoCapture(0) flag = cap.isOpened() index = 1 ...
  • Java 保存对象到本地

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

    千次阅读 2020-05-28 17:43:34
    MultipartFile文件类型保存到本地 // An highlighted block public static void approvalFile( MultipartFile filecontent){ OutputStream os = null; InputStream inputStream = null; String fileName = ...
  • C#中将Image保存到本地

    万次阅读 2018-11-05 16:21:07
    最近弄一个小小的和二维码有关的任务,将图片保存到本地时遇到一点问题,当初的Bitmap等图片有关的都忘记了,现在当作重新学习一下。 首先,放出微软官方API Image.Save Method 这里的解释和示例能解决大部分...
  • java 文件保存到本地

    万次阅读 2018-12-07 17:33:37
    private void savePic(InputStream inputStream, String fileName) { OutputStream os = null; try { String path = "D:\\testFile\\"; // 2、保存到临时文件 // 1K的数...
  • 问题描述:假设网页有个文本框之类的东西,想通过点击某一按钮后,将用户文本框中输入的内容直接保存在本地某个文件中。同理,也想通过页面直接读取本地文件中的内容。   问题分析:因为整个处理过程不涉及后台...
  • 使用ffmpeg将直播流保存到本地

    万次阅读 热门讨论 2019-04-22 19:12:19
    直播流如何保存到本地 使用javaCV的FFmpegFrameGrabber帧捕捉器捕捉流的音频帧和视频帧 使用javacpp的FFmpeg 模块调用C/C++类库将帧录制到本地文件 所需依赖 <!--直播流转视频--> <dependency> <...
  • vue 图片下载到本地,图片保存到本地

    万次阅读 热门讨论 2018-08-13 16:04:07
    必须同源(访问的网站域名与服务器域名一致)才能下载 downs() { var alink = document.createElement("a"); alink.href = this.shop.shoppic_url; alink.download = "...downloadIa...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,067,759
精华内容 427,103
关键字:

保存到本地是在哪