首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java:将URL中的pdf文件读取到applet中的Byte数组

您好!您的问题是关于如何在Java Applet中将URL中的PDF文件读取到Byte数组中。以下是一个简单的示例代码,用于从URL中读取PDF文件并将其转换为字节数组:

代码语言:java
复制
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

public class URLToByteArray {
    public static void main(String[] args) throws Exception {
        String pdfUrl = "https://example.com/example.pdf";
        byte[] pdfBytes = getPDFBytesFromURL(pdfUrl);
        System.out.println("PDF bytes: " + pdfBytes);
    }

    public static byte[] getPDFBytesFromURL(String pdfUrl) throws Exception {
        URL url = new URL(pdfUrl);
        URLConnection connection = url.openConnection();
        connection.connect();

        InputStream inputStream = new BufferedInputStream(connection.getInputStream());
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

        int bytesRead;
        byte[] buffer = new byte[1024];
        while ((bytesRead = inputStream.read(buffer)) != -1) {
            byteArrayOutputStream.write(buffer, 0, bytesRead);
        }

        inputStream.close();
        byteArrayOutputStream.close();

        return byteArrayOutputStream.toByteArray();
    }
}

这个代码示例首先从给定的URL中打开一个连接,然后使用BufferedInputStream从连接中读取数据。接下来,它将读取的数据写入ByteArrayOutputStream,最后将其转换为字节数组。

请注意,这个示例仅适用于较小的PDF文件,因为它会一次性将整个文件读取到内存中。对于较大的文件,您可能需要使用其他策略,例如分块读取或将文件存储在磁盘上。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • .net mvc + layui做图片上传(二)—— 使用流上传和下载图片

    摘要:上篇文章写到一种上传图片的方法,其中提到那种方法的局限性,就是上传的文件只能保存在本项目目录下,在其他目录中访问不到该文件。这与浏览器的安全性机制有关,浏览器不允许用户用任意的路径访问服务器上的资源,因为这可能造成服务器上其他位置的信息被泄露。浏览器只允许用户用相对路径直接访问本项目路径下的资源。那么,如果A项目要访问B项目上传的文件资源,这就产生问题了。所以这就需要另外一种方法来解决这个问题,那就是通过 流(Stream)的形式上传和下载文件资源。这种方法因为不是通过路径直接访问文件,而是先把文件读取的流中,然后将流中的数据写入到新的文件中,还原需要上传的文件,所以也就不存在上面的问题了。本片博客,着重介绍一下这种方式的实现。

    03

    JAVA学习大纲

    第一节 JAVA概念与JDK的安装 1.1JAVA语言的特点: 1.1.1简单性                      1.1.2面向对象:封装、继承、多态等; 1.1.3分布性:有很强的通信库;可处理TCP/IP等协议;可通过URL访问网络资源;分布计算; 1.1.4健壮性                  1.1.5安全性            1.1.6体系结构中立 1.1.7解释执行                1.1.8可移植性          1.1.9高效性 1.1.10多线程     1.1.11动态性:可在库中自由加入新方法和实例变量,适应不断变化的环境; 1.2JAVA的三个版本: 1.2.1 J2SE:JAVA标准版;   1.2.2 J2EE:JAVA企业版;1.2.3 J2ME:JAVA微缩版; 1.3 相关基本概念:JDK、SDK、JRE、JVM、 1.4 JDK的安装和环境变量的设置; 1.5 一个简单的Hello World简单示例; 1.6 javac.exe、java.exe的作用 1.6.3 基本输入输出应用

    02

    Applet 数字签名技术完全攻略

    这里说声对不起大家。毕竟2几年前,我想写这篇文章,但因为他才懒得一直没有写。同时也给自己的东西好。前些日子我老大让我又搞这个东西发现我曾经的资料没留,又凭着自己印象从新来过。但发现网上写的东西真的有些肤浅,实在说只是去。毕竟我们是程序猿,不是学生了,怎么也点多想些东西哦,于是将自己总结的东西写下来,留给刚開始学习的人一些启发好了。通过学习一下内容您将具备通过server全然訪问本地client的能力。不在受不论什么权限的困扰,(非常多文章都写须要改 client本地的策略文件。事实上根本不是必需,仅仅要client点了俺们的数字签名,俺们可就什么都能干了) ~oo~

    03

    关于InputStream类的available()方法

    要一次读取多个字节时,经常用到InputStream.available()方法,这个方法可以在读写操作前先得知数据流里有多少个字节可以读取。需要注意的是,如果这个方法用在从本地文件读取数据时,一般不会遇到问题,但如果是用于网络操作,就经常会遇到一些麻烦。比如,Socket通讯时,对方明明发来了1000个字节,但是自己的程序调用available()方法却只得到900,或者100,甚至是0,感觉有点莫名其妙,怎么也找不到原因。其实,这是因为网络通讯往往是间断性的,一串字节往往分几批进行发送。本地程序调用available()方法有时得到0,这可能是对方还没有响应,也可能是对方已经响应了,但是数据还没有送达本地。对方发送了1000个字节给你,也许分成3批到达,这你就要调用3次available()方法才能将数据总数全部得到。 http://www.cnblogs.com/CandiceW/p/5486112.html

    02
    领券