java使用io流下载数据并保存到目标路径

需求:通过http,下载网络视频到u盘中或磁盘中

public static boolean copyDvrOrRecordFile(String filePath, String destPath, String fileName) {
	//网络连接
    HttpURLConnection connection = null;
    //包装流,使用装饰器模式,干活的还是传进来的对应的流
    //缓冲输入流,从外部资源比如网络,读取数据到内存中
    BufferedInputStream bufferedInputStream = null;
    //缓冲输出流,将内存中的数据,输出到对应的外部存储,比如u盘
    BufferedOutputStream bufferedOutputStream = null;
    try {
        URL url = new URL(filePath);
        connection = (HttpURLConnection) url.openConnection();
        connection.setConnectTimeout(Constants.GALLERY_NETWORK_REQUEST_TIME_OUT);
        InputStream inputStream = connection.getInputStream();
        //目标路径,如果不存在就创建对应的目录
        File fileDir = new File(destPath);
        if (!fileDir.exists()) {
            fileDir.mkdir();
        }
        //目标文件,将下载的数据存入目标设备,以及文件名
        File destFile = new File(fileDir, fileName);
        bufferedInputStream = new BufferedInputStream(inputStream);
        FileOutputStream fileOutputStream = new FileOutputStream(destFile);
        bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
        byte[] buffer = new byte[Constants.GALLERY_NETWORK_SIZE];
        int len;
        //使用缓冲输出流,不停地写入字节
        while ((len = bufferedInputStream.read()) != -1) {
            bufferedOutputStream.write(buffer, 0, len);
        }
        //缓冲输出流刷新
        bufferedOutputStream.flush();
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    } finally {
    	//关闭相关的资源文件
        try {
            if (connection != null) {
                connection.disconnect();
            }
            if (bufferedInputStream != null) {
                bufferedInputStream.close();
            }
            if (bufferedOutputStream != null) {
                bufferedOutputStream.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

调用

在这里插入图片描述

实现效果

在这里插入图片描述
主要是为了熟悉基本的io的使用。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. 读取文本文件并打印到控制台 2. 从键盘读取输入并将其写入到文本文件中 3. 将图像文件复制到另一个文件夹 4. 从网络套接字读取数据并将其写入到文件 5. 使用ObjectInputStream和ObjectOutputStream进行序列化和反序列化 注意:这些练习应该在你已经掌握了Java IO流的基本概念和语法之后进行。如果你还没有学习过Java IO流,建议先去学习相关知识。 ### 回答2: 以下是一些JavaIO流的练习案例: 1. 文件复制:编写一个程序,从一个文件中读取内容,并将其复制到另一个文件中。可以使用字节流或字符流进行操作。 2. 文件备份:编写一个程序,能够备份指定的文件夹,并将文件夹中的所有文件和子文件夹复制到指定的目标文件夹中。 3. 文件搜索:编写一个程序,可以搜索指定文件夹中的所有文件,找到包含特定关键字的文件,并将其路径输出。 4. 文件压缩:编写一个程序,可以将指定文件夹中的所有文件压缩成一个压缩文件,并保存到指定目录中。 5. 文本编辑器:编写一个简单的文本编辑器,可以打开和保存文件,并实现一些基本的文本编辑操作,如插入、删除和替换文本等。 6. 网络文件传输:编写一个客户端和服务器端的程序,实现从客户端向服务器端传输文件的功能。 7. 序列化和反序列化:创建一个Java对象,并将其序列化到文件中,然后再从文件中反序列化出来,并打印出对象的信息。 这些练习案例可以帮助你熟悉JavaIO流使用,加深对文件操作和网络传输的理解。通过实际操作和练习,你可以更好地掌握JavaIO流的相关知识。 ### 回答3: 以下是几个Java IO流的练习案例: 1. 案例一:复制文件 编写一个Java程序,实现将一个文件的内容复制到另一个文件中。可以使用FileInputStream和FileOutputStream来读取和写入文件的内容。 2. 案例二:读取文件内容并统计字符数 编写一个Java程序,实现读取一个文本文件的内容,并统计其中的字符数。可以使用BufferedReader来逐行读取文件内容,并使用字符流来读取文件的内容。 3. 案例三:写入文件内容 编写一个Java程序,实现向一个文本文件中写入内容。可以使用PrintWriter来写入文件内容。 4. 案例四:读取CSV文件内容并处理 编写一个Java程序,读取一个CSV文件的内容,并对其内容进行处理。可以使用BufferedReader和StringTokenizer来读取CSV文件的内容,并使用String的split方法对每一行进行解析和处理。 5. 案例五:读取网络资源内容并保存 编写一个Java程序,从一个URL中读取内容,并将其保存到一个文件中。可以使用URL和HttpURLConnection来读取URL资源的内容,并使用FileOutputStream将内容写入文件中。 这些案例可以帮助你加深对Java IO流的理解,掌握各种IO类的使用方法和技巧。通过练习这些案例,你可以更好地理解Java IO流的概念和应用场景,提升你在Java开发中处理文件和网络资源的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值