java根据url下载文件以及从InputStream内读二进制数组

URL url = new URL(fileUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(60000);
inputStream = conn.getInputStream();

inputStream 为根据url读取的文件输入流

使用以下方法可以的得到文件的二进制数组

private byte[] read(InputStream inputStream) {
        ByteArrayOutputStream baos = null;
        try {
            baos = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int num = inputStream.read(buffer);
            while (num != -1) {
                baos.write(buffer, 0, num);
                num = inputStream.read(buffer);
            }
            baos.flush();
            return baos.toByteArray();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (baos != null) {
                try {
                    baos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        return null;
    }
Java中,你可以使用`java.net.URL`、`java.io.InputStream`以及相关的I/O流来下载网络文件,然后将内容读取为字节,接着进行Base64编码。最后,如果你需要删除这个临时文件,可以使用`File`类的delete()方法。这里是一个简单的示例: ```java import java.io.*; import java.net.URL; public class FileDownloadAndEncoding { public static void main(String[] args) throws IOException { // 创建URL对象 URL url = new URL("http://example.com/file.zip"); // 替换为你想要下载文件地址 // 创建文件存储路径 String localFilePath = "tempFile.zip"; // 下载并保存到本地 try (InputStream in = url.openStream(); FileOutputStream fileOutputStream = new FileOutputStream(localFilePath)) { byte[] buffer = new byte[4096]; int bytesRead; while ((bytesRead = in.read(buffer)) != -1) { fileOutputStream.write(buffer, 0, bytesRead); } System.out.println("文件下载到本地"); } // 读取文件内容为字节数组 FileInputStream fis = new FileInputStream(localFilePath); byte[] bytes = new byte[(int) fis.getChannel().size()]; fis.read(bytes); // 关闭输入流 fis.close(); // 对字节数组进行Base64编码 String base64Encoded = Base64.getEncoder().encodeToString(bytes); System.out.println("Base64编码后的字符串: " + base64Encoded); // 删除本地文件 boolean deleted = new File(localFilePath).delete(); if (deleted) { System.out.println("本地文件已删除"); } else { System.out.println("删除文件失败"); } } } ``` 在这个例子中,注意处理异常,因为网络连接和文件操作都有可能出现错误。同时,记得替换URL地址和文件名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值