java通过url下载文件并输出的方法

以下是完整攻略,包含代码和说明:

通过URL下载文件并输出的方法

基本思路

下载文件的基本思路是,通过URL获取文件的输入流,然后将输入流写入输出流,最终将输出流写入文件中。在Java中,可以利用URLConnection类和BufferedInputStream/BuffferedOutputStream类来实现该过程。

示例1

以下是一个通过URL下载文件并保存的示例代码:

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

public class DownloadFile {
    public static void main(String[] args) {
        String fileURL = "https://example.com/file.pdf";  // 要下载的文件的URL
        String saveDir = "/Users/user/Downloads";  // 文件保存的目录

        try {
            URL url = new URL(fileURL);  // 创建URL对象
            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();  // 打开连接
            int responseCode = httpConn.getResponseCode();  // 获取响应码

            // 判断是否请求成功
            if (responseCode == HttpURLConnection.HTTP_OK) {
                // 获取连接中的输入流
                InputStream inputStream = httpConn.getInputStream();
                String fileName = fileURL.substring(fileURL.lastIndexOf("/") + 1); // 获取文件名
                String filePath = saveDir + "/" + fileName;  // 拼接文件路径

                // 创建输出流
                OutputStream outputStream = new FileOutputStream(filePath);

                // 创建缓存输入输出流
                byte[] buffer = new byte[4096];
                int bytesRead = -1;
                while ((bytesRead = inputStream.read(buffer)) != -1) {
                    outputStream.write(buffer, 0, bytesRead);
                }

                // 关闭输入流、输出流、连接
                outputStream.close();
                inputStream.close();
                httpConn.disconnect();

                System.out.println("File download complete");
            } else {
                System.out.println("No file to download. Server replied HTTP code: " + responseCode);
            }
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

该示例通过URL连接到指定的文件,并将文件保存在指定的目录中。如果请求成功,会输出"File download complete"。

示例2

以下是一个通过URL下载图片并展示的示例代码:

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.*;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class DownloadImage {
    public static void main(String[] args) {
        String imageUrl = "https://example.com/image.jpg";  // 要下载的图片的URL

        try {
            URL url = new URL(imageUrl);  // 创建URL对象
            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();  // 打开连接
            int responseCode = httpConn.getResponseCode();  // 获取响应码

            // 判断是否请求成功
            if (responseCode == HttpURLConnection.HTTP_OK) {
                // 获取连接中的输入流
                InputStream inputStream = httpConn.getInputStream();

                // 将输入流转为BufferedImage对象
                BufferedImage image = ImageIO.read(inputStream);

                // 关闭输入流、连接
                inputStream.close();
                httpConn.disconnect();

                // 创建JFrame和JLabel
                JFrame frame = new JFrame();
                JLabel label = new JLabel(new ImageIcon(image));

                // 设置JFrame的相关属性
                frame.setSize(500, 500);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.getContentPane().add(label);
                frame.setVisible(true);
            } else {
                System.out.println("No image to download. Server replied HTTP code: " + responseCode);
            }
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

该示例通过URL连接到指定的图片,并展示在JFrame上。如果请求成功,会展示图片。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java通过url下载文件并输出的方法 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Spring Boot的Controller控制层和页面

    Spring Boot是一个快速创建Web应用程序的框架,它提供了许多便捷的功能和工具,其中包括控制层和页面。控制层是Web应用程序的核心,它处理HTTP请求并返回响应。页面是Web应用程序的用户界面,它向用户展示数据和交互式元素。下面是详解Spring Boot的Controller控制层和页面的完整攻略: 创建控制器类 首先,我们需要创建一个控制器类来处…

    Java 2023年5月14日
    00
  • jsp中页面间传汉字参数转码的方法

    在JSP中传递汉字参数可能会出现乱码问题,这是因为浏览器和服务器之间默认采用的字符集不同。为了解决这个问题,我们可以采用如下的方法进行解决。 一、设置请求和响应的编码方式 可以在JSP页面中设置请求和响应的编码方式,代码如下: <%@ page language="java" contentType="text/html;…

    Java 2023年6月15日
    00
  • Java 二分法检索算法代码实现详解

    Java 二分法检索算法代码实现详解 什么是二分法检索算法 二分法(Binary Search)又称折半查找法,它要求待查找的序列是有序的,每次查找都取中间位置的值进行比较,然后将查找的区域缩小为左边或右边的一半,直到找到目标值为止。 代码实现 下方是 Java 语言实现的二分法算法代码: public static int binarySearch(int…

    Java 2023年5月19日
    00
  • Android之网络通信案例分析

    Android之网络通信案例分析 本文将为大家详细介绍如何在Android应用中实现网络通信,主要内容包括: Android的网络通信模块介绍; HttpUrlConnection工具类详细讲解和使用方法; okhttp工具类详细讲解和使用方法; Retrofit库详细讲解和使用方法; Volley库详细讲解和使用方法。 一、Android的网络通信模块介绍…

    Java 2023年5月23日
    00
  • 一篇文章带你了解Java SpringBoot四大核心组件

    一篇文章带你了解Java Spring Boot四大核心组件 Java Spring Boot 是一款快速开发 Web 应用的框架,它提供了很多优秀的解决方案以方便我们快速构建一个可部署、高可扩展、易于维护的应用程序。在 Spring Boot 之中,有四大核心组件,它们是 Spring MVC、Spring Data JPA、Spring Security…

    Java 2023年5月15日
    00
  • java中的Io(input与output)操作总结(三)

    标题:Java中的IO(Input与Output)操作总结(三) 概述 在Java中,IO是一项重要的操作。在前两篇文章中,我们讲解了Java中的Input与Output操作。本文将为大家介绍Java中的文件操作、Socket网络编程以及序列化操作。 文件操作 Java中,我们通过File类实现文件操作。首先,我们需要使用构造函数创建一个File对象,进而对…

    Java 2023年5月26日
    00
  • springboot的四种启动方式

    下面是关于Spring Boot的四种启动方式的详细攻略: 1. 命令行启动方式 在命令行中直接输入”java -jar”命令启动Spring Boot应用。在执行该命令时需要指定Jar包路径,例如: java -jar springboot-demo.jar 如果应用需要指定参数,可以在命令行中传入。 2. Maven插件启动方式 使用Spring Boo…

    Java 2023年5月15日
    00
  • Go java 算法之括号生成示例详解

    Go java 算法之括号生成示例详解 算法介绍 本算法是使用回溯算法来实现的,先在左边放置一个'(‘,再将’)’放置在之前的'(‘后面。在任意时刻,使用的左括号数量都不应超过 n,也就是原本需要生成的数量。 代码实现 public List<String> generateParenthesis(int n) { List<String&…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部