java - 如何替换从和返回到字节 [] 的子字符串
问题描述
在 JSP 文件中,我收到一个表示 PDF 文件的 byte[],我将其转换为 String 以替换子字符串,然后返回 byte[] 以生成 PDF 文件。不幸的是,以前的程序员在 PDF 中硬编码了一些文本,现在,只是为了替换这些字符串,我不想重新编译和重新部署所有内容,主要是因为我根本不懂 JAVA。
但是,鉴于此代码:
byte[] bytes;
byte[] bytess;
String base = request.getSession().getServletContext().getResource("/") + "img/";
bytes = o.getPdf(id);
String strings = new String(bytes, "ISO-8859-1");
System.out.println(strings);
strings = strings.replace("00198","00135");
bytess = strings.getBytes("ISO-8859-1");
DataOutput output = new DataOutputStream(response.getOutputStream());
response.setContentLength(bytess.length);
for (int i = 0; i < bytess.length; i++) {
output.writeByte(bytess[i]);
}
PDF 由 Chrome 显示,但 00198 仍然存在。为什么这忽略了替换命令?
************** 编辑 *********************
如果我将文件另存为 TXT,我可以看到这个......(它可以以某种方式帮助我吗?)
%PDF-1.4
%âãÏÓ 2 0 obj <>stream xœ'=kÃ0†wýŠwl‡Ð“?dgTÜ3$jî¥CIúÿ#Ç¡^*SnÇóðÞúVQµAOò¦XÔËÜy54AÞ•åÒ¨:BÝäÖ§ºûú9Ÿïåão°^992{N¯IØ'ˆ}âxâ© èV„†×»gNØÁ»”\Œ1N#¿ÊÉM[Òÿa·ÙìÛ«¬7"Ý-ºG;l'¦[È“³ˆ£ ¡ûÃõ0õ2'Þo{ú%§èmy§ª]A_ÆÌŠ9)bÚP¾Ò•: ¸8óJÁ…8+ùë\ W}§ endstream endobj 4 0 obj<>>>/MediaBox[0 0 595 842]>> endobj 1 0 obj<> endobj 3 0 obj<> endobj 5 0 obj<> endobj 6 0 OBJ <> endobj Xref 0 7 00000000 65535 F 0000000457 00000 N 00000015 00000 N 0000000543 00000 N 0000000300 00000 N 0000000593 00000 00000 N 0000000 N 0000000637 00000 N TRAILER <]/size 6 0 r/size;
谢谢
解决方案
推荐阅读
- c# - 如何使用 Environment.NewLine 作为可选参数默认值
- javascript - 结合返回嵌套函数的 JavaScript 函数声明或表达式
- javascript - 在angularjs中单击另一个组件中的按钮时,如何使用ng-if隐藏组件?
- android - 从包含多个引号的 Python 脚本中运行 ADB 命令
- java - GMapsFX 不显示
- python - 最后一列追加python
- php - 将结帐计费公司字段设为只读,使其在 Woocommerce 中保持活跃
- c# - 如何将位置保存在静态变量中(eX,eY)
- sql - 按具有计数 > X 的 ID 分组,其中日期 > X
- python - 将 App Engine 上运行的 python 脚本连接到 Oracle 数据库