在我的代码(doGet 方法中的 HttpServlet)中,我需要在 .js 文件中写入可以采用从 0 到 255 的任何值的字节。我在调试器中检查到 result[1] 的值为 0。但是,在外部文件中,它被写入空白,当我尝试读取它时,它的字节值是“32”。我只遇到了字节 0 的问题,其余的都工作正常。有什么想法吗?
res.setContentType("image/gif");
res.setHeader("Content-Disposition","attachment;filename=myFile.js");
OutputStream os = res.getOutputStream();
byte[] result=encrypt(req.getParameter("original")); // Here result has values [64,0,81,80]
os.write(result,0,result.length);
我从外部 JavaScript 检索值:
var whatever = data[1].charCodeAt(0); // whatever has value 32
我在 Javascript 程序中看到了类似的问题,他们修复了这个问题,包括在写入文件之前的这个循环:
for (var i=0; i<result.length; i++) {
result[i] = String.fromCharCode(result[i]); }
我已经做了一些测试并且适用于 Javascript。 Java 中的等价物是什么?
谢谢
最佳答案
32 是空格的 ASCII 值。这就是为什么 32 为空。
关于java - 使用 Java 的 OutputStream.write() 函数将字节 "0"写入字节 "32",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877480/