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

从url读取pdf文件到字节数组

从URL读取PDF文件到字节数组的整个过程可以分为以下几个步骤:

  1. 使用URL对象读取PDF文件

首先,需要使用Java中的URL对象来读取PDF文件。可以使用以下代码:

代码语言:java
复制
URL url = new URL("http://example.com/example.pdf");
InputStream inputStream = url.openStream();
  1. 将输入流转换为字节数组

接下来,需要将输入流转换为字节数组。可以使用以下代码:

代码语言:java
复制
byte[] pdfBytes = IOUtils.toByteArray(inputStream);

其中,IOUtils是Apache Commons IO库中的一个工具类,可以将输入流转换为字节数组。如果没有使用Apache Commons IO库,可以使用以下代码:

代码语言:java
复制
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
    byteArrayOutputStream.write(buffer, 0, length);
}
byte[] pdfBytes = byteArrayOutputStream.toByteArray();
  1. 关闭输入流

最后,需要关闭输入流,以释放资源。可以使用以下代码:

代码语言:java
复制
inputStream.close();

完整的代码示例如下:

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

import org.apache.commons.io.IOUtils;

public class PdfReader {
    public static void main(String[] args) throws Exception {
        URL url = new URL("http://example.com/example.pdf");
        InputStream inputStream = url.openStream();
        byte[] pdfBytes = IOUtils.toByteArray(inputStream);
        inputStream.close();
        // 使用pdfBytes进行后续操作
    }
}

这样就可以从URL中读取PDF文件并将其转换为字节数组。

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

相关·内容

Shell编程看懂看开②(字符串、数组、注释、流程控制、read读取控制台输入)

good university中的NEFU提取出来:string="NEFU is a good university"echo ${string:0:4} # 输出 unoostring:0:4:代表字符串的第...定义数组在 Shell 中,用括号来表示数组数组元素用"空格"符号分割开。定义数组的一般形式为:数组名=(值1 值2 ......读取数组读取数组元素值的一般格式是:${数组名[下标]}例如:valuen=${array_name[n]}使用 @ 符号可以获取数组中的所有元素,例如:echo ${array_name[@]}获取数组的长度获取数组长度的方法与获取字符串长度的方法相同...中一样这里的[]可以用(())代替,这样我们使用比较符的时候更加方便图片输出结果:图片until循环当判断式条件不成立时执行until [ 条件判断 ]do程序段落donebreak循环控制break语句用于for...==基本语法==read (选项) (参数)选项:p:指定读取值时的提示符;t:指定读取值时等待的时间(秒)如果-t 不加表示一直等待参数:变量:指定读取值的变量名==案例实操==[root@hadoop101

57620

1.2w+字!Java IO 基础知识总结

字节流 InputStream(字节输入流) InputStream用于源头(通常是文件读取数据(字节信息)内存中,java.io.InputStream抽象类是所有字节输入流的父类。...read(byte b[ ]) : 输入流中读取一些字节存储数组 b 中。如果数组 b 的长度为零,则不读取。如果没有可用字节读取,返回 -1。... Java 9 开始,InputStream 新增加了多个实用的方法: readAllBytes() :读取输入流中的所有字节,返回字节数组。...Reader(字符输入流) Reader用于源头(通常是文件读取数据(字符信息)内存中,java.io.Reader抽象类是所有字符输入流的父类。...read(char[] cbuf) : 输入流中读取一些字符,并将它们存储字符数组 cbuf中,等价于 read(cbuf, 0, cbuf.length) 。

47630

了解ASP.NET MVC几种ActionResult的本质:FileResult

在这篇文章中我们将探讨三种具体的FileResult是如何将文件内容对请求进行响应的。[本文已经同步《How ASP.NET MVC Works?》...当我们基于某个物理文件创建相应的FileResult对象的时候应该根据文件的类型指定媒体类型,比如说目标文件是一个.jpg图片,那么对应的媒体类型为“image/jpeg”,对于一个.pdf文件,则采用...如下面的代码片断所示,FileContentResult具有一个字节数组类型的只读属性FileContents表示响应文件的内容,该属性在构造函数中指定。...FileContentResult针对文件内容的响应实现也很简单,如下所示的WriteFile方法定义可以看出,它只是调用当前HttpResponse的OutputStream属性的Write方法直接将表示文件内容的字节数组写入响应输出流...由于FileContentResult是根据字节数组创建的,当我们需要动态生成响应文件内容(而不是物理文件读取)时,FileContentResult是一个不错的选择。

987100

万字长文带你学习【前端开发中的二进制数据】| 技术创作特训营第五期

图像、音频文件上传,这些数据类型常常以二进制形式存在。...数据读写 Blob 或 File 中读取数据:使用 FileReader 对象,它提供了读取文件内容的方法,比如 readAsText()、readAsArrayBuffer()、readAsDataURL...};reader.readAsText(file); // 以文本格式读取文件内容 ArrayBuffer 中读取数据:使用 TypedArrays 或 DataView 对象,它们允许你以不同数据类型...ReadableStream(可读流): `ReadableStream` 表示一种可读取的数据流。它允许开发者各种数据源(例如网络请求、文件、Blob 对象等)读取数据。...application/pdf':表示 PDF 文档。'audio/mpeg':表示 MP3 音频文件。'video/mp4':表示 MP4 视频文件。'

26531

PDF Explained(翻译)第三章 文件结构

%%EOF //文件结束标记 文件末尾向后读取trailer:找到文件结束标记, 提取交叉引用表的字节偏移量,然后解析trailer字典。...三种复合对象: 数组,包含其他对象的有序集合,如[1 0 0 0]。 字典,无序集合,保存名称对象的映射关系。...如何读PDF文件读取PDF文件,将其从一系列字节转换为内存中的“对象图”,通常有如下步骤: 文件开头读取PDF header,确认这确实是PDF文档并获取其版本号。...文件末尾逆向检索,找到文件结束标记。然后读取trailer字典以及交叉引用表开关位置的字节偏移。 读取交叉引用表,获取每个对象在文件中的位置。...1至n,重新对对象进行编号,其中n是文件中对象的个数。 1号对象开始,逐个输出对象。记录每个对象的字节偏移量,为后续写入交叉引用表作准备。 写入交叉引用表。

1.2K40

【前端知乎系列】ArrayBuffer 和 Blob 对象

默认 0 开始。 end,整数类型,表示结束复制的位置(不包括结束的位置)。如果省略,则表示复制结束。...出于安全考虑,浏览器不允许脚本自行设置这个控件的 value 属性,即文件必须是用户手动选取的,不能是脚本指定的。一旦用户选好了文件,脚本就可以读取这个文件。...文件选择器返回一个 FileList 对象,该对象是个类数组对象,每个成员都是一个 File 实例对象。...这一点与 data://URLURL 包含实际数据)和 file://URL(本地文件系统里面的文件)都不一样。...5.4 读取文件 取得 Blob 对象以后,可以通过 FileReader 对象,读取 Blob 对象的内容,即文件内容。 FileReader 对象提供四个方法。

1.3K00

【前端知乎】443- ArrayBuffer 与 Blob 对象详解

默认 0 开始。 end,整数类型,表示结束复制的位置(不包括结束的位置)。如果省略,则表示复制结束。...出于安全考虑,浏览器不允许脚本自行设置这个控件的 value 属性,即文件必须是用户手动选取的,不能是脚本指定的。一旦用户选好了文件,脚本就可以读取这个文件。...文件选择器返回一个 FileList 对象,该对象是个类数组对象,每个成员都是一个 File 实例对象。...这一点与 data://URLURL 包含实际数据)和 file://URL(本地文件系统里面的文件)都不一样。...5.4 读取文件 取得 Blob 对象以后,可以通过 FileReader 对象,读取 Blob 对象的内容,即文件内容。 FileReader 对象提供四个方法。

1.6K11

java基础io流——OutputStream和InputStream的故事(温故知新)

: A:调用系统功能去创建文件 B:创建outputStream对象 C:把foutputStream对象指向这个文件 通过字节输出流写出数据文本 public void write(int b) public...void write(byte[] b) public void write(byte[] b,int off,int len) 方法中可看出,只能通过字节写出 outputStream.write...[] b)返回的是读到的字节个数,读到的字节放在了bytes字节数组里,读到末尾没数据了返回-1。...两种读取方式图解: ? image 同样的用完了流,也要及时的关闭,以防占用内存。 inputStream.close(); 完整示例: 建议以字节数组的方式读取数据。...利用输入流读取一个文件里的字节,再利用输出流将读取到的字节写出到另一个文件中(不存在会自动创建) package io2; import java.io.FileInputStream; import

84020

java基础io流——OutputStream和InputStream的故事(温故知新)

:  A:调用系统功能去创建文件 B:创建outputStream对象 C:把foutputStream对象指向这个文件 通过字节输出流写出数据文本  public void write(int b)...public void write(byte[] b) public void write(byte[] b,int off,int len) 方法中可看出,只能通过字节写出  outputStream.write...inputStream.close(); 完整示例:  建议以字节数组的方式读取数据。 ...  利用输入流读取一个文件里的字节,再利用输出流将读取到的字节写出到另一个文件中(不存在会自动创建)  package io2; import java.io.FileInputStream; import...字节流一次读写一个数组的速度明显比一次读写一个字节的速度快很多,这是加入了数组这样的缓冲区效果。

58840

PDF Explained(翻译)第二章 构建一个简单的PDF

file structure(文件结构),包括header(文件头),trailer(文件尾)和交叉引用表,帮助程序定位并读取文件内容。...字典(Dictionaries)(名称对象的无序映射),如 >,将/Three映射为3,将/Five映射为5。...交叉引用表: 列出了每个对象在文档中的字节偏移量–这 允许随机访问任意对象,而不必顺序读取文件尾(trailer): 包括交叉引用表的字节偏移,后面跟着文件结束标记。...构建元素 我们将PDF数据输入文本文件中。 我们会跳过一些难以手动填充的信息,依靠pdftk来填充它。我们会: 使用简短的header。...文件,将输出写入hello.pdf: pdftk hello-broken.pdf output hello.pdf pdftk读取文件及其对象,修补错误同时将缺失数据补全。

1.2K30
领券