- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用一个 ByteArrayInputStream
,它包含一个 XML 文档,该文档由一个元素组成,元素的内容是一个大的 base 64 编码字符串。我需要删除周围的标签,以便解码文本并将其输出为 pdf 文档。
最有效的方法是什么?
我下意识的 react 是将流读入一个byte
数组,找到起始标签的结尾,找到结束标签的开头,然后将中间部分复制到另一个 >byte
数组;但这似乎效率很低,而且我正在处理的文本有时可能很大 (128KB)。我想要一种不需要额外的 byte
数组的方法。
最佳答案
Base 64 不使用字符 <
或 >
所以我假设您使用的是网络安全的 base64 变体,这意味着您无需担心内容中的 HTML 实体或注释。如果您确实确定内容具有这种形式,请执行以下操作:
'<'
.这将是结束标记的开始。'>'
.这将是开始标记的结尾。base 64 内容在这两个位置之间,互斥。
您可以使用
((end - start + 3) / 4) * 3
作为解码内容长度的上限,然后 b64decode 到它。这是有效的,因为每 4 个 base64 数字编码 3 个字节。
如果你真的想变得更花哨,因为你知道数组的前几个字节包含可忽略的标记数据并且编码数据小于输入,你可以破坏性地解码当前字节缓冲区上的数据。
关于java - 高效的 ByteArrayInputStream 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9726821/
关于 ByteArrayInputStream 的文档说: java.io.ByteArrayInputStream.ByteArrayInputStream(byte[] buf) Creates
我想知道是否是 ByteArrayInputStream java.io 包中的类好用吗?或者,如果要通过使用字节数组将其与自己的类进行比较,例如: private int pos = 0; priv
使用 ByteArrayInputStream 和/或 ByteArrayOutputStream 的一些实际领域是什么?也欢迎提供示例。 如果搜索示例,通常会找到如下内容: byte[] buf =
我正在研究流媒体网络摄像头。 现在我可以进行 1:1 TCP 网络摄像头通信。 问题是即使 gc 运行,堆内存也不会减少。 我尝试了重置(),刷新(),关闭()。 一切看起来都很好,但 new Byt
我有方法返回将显示为文本字符串的值。所以我正在做的是转换为 ByteArrayInputStream。 public String method() { inputStream = new B
假设一个函数如下: InputStream func() { byte[] buffer = new byte[] {0,1,2,3}; return
我只是想弄清楚 ByteArrayInputStream 中的字节类型。在一种情况下,我存储一个byte[],在另一种情况下,我存储一个Hashmap。以下代码仅在 byte[] 的情况下在 Obje
java.io 类太多了,对于其中一些我真的不明白什么时候需要它们,例如: 字节数组输入流、字节数组输出流 序列输入流, PushbackInputStream、PushbackReader 字符串读
基本上我使用(在groovy中)以下结构: InputStream in = new ByteArrayInputStream("one two three four".getBytes()); 但是
我将使用 Jsch ssh 到另一台服务器 并检查路径是否存在 但是我发现baos.toString() 将在终端上打印出所有结果: test -d /root/bin/python || echo
我正在使用一个 ByteArrayInputStream,它包含一个 XML 文档,该文档由一个元素组成,元素的内容是一个大的 base 64 编码字符串。我需要删除周围的标签,以便解码文本并将其输出
首先,在下面的代码中,我试图做的是使用“byteBuffer[0].length”找到二维字节数组的长度,但它实际上不起作用。当我打印 'byteBuffer[0].length' 时,它给出的输出为
我正在尝试通过 telnet 与 Windows 服务器中的应用程序进行交互,因此我使用的是 TelnetClient() 方法。我可以使用 System.in.read() 进行交互(发送命令和检索
我有一个 JPA AttributeConverter,用于将 String 转换为 gzipped byte[] 并返回。 转换方法相当简单: public byte[] convertToData
我正在尝试以 blob 数据格式 ([B@e96bf) 加载 MySQL 数据库中的图像,但无法将其加载到 JLabel,如下所示。它显示 ByteArrayInputStream 为空。 byte[
我想从 ByteArrayInputStream 获取内部字节数组。我不想扩展该类或将其写入另一个字节数组。有实用程序类可以帮助我做到这一点吗? 谢谢, 最佳答案 您无法访问相同的字节数组,但您可以轻
我在测试中遇到了这段代码。 byte[] bytes = new byte[] { -1, 1, 0x0 }; InputStream in = new ByteArrayInputStream(by
以下是在处理文件之前将整个文件读入内存的三种方法: 方法一: fis = new FileInputStream(file); bis = new BufferedInputStream(fis);
我有一个 ByteArrayInputStream 形式的图像。我想把它做成我可以保存到我的文件系统中某个位置的东西。 我一直在兜圈子,你能不能帮帮我。 最佳答案 如果您已经在使用 Apache co
我读过 this post但我不关注。我看过this但还没有看到使用 ByteArrayOutputStream 将 ByteArrayInputStream 转换为 String 的正确示例。 要将
我是一名优秀的程序员,十分优秀!