В моем коде (HttpServlet в методе doGet) мне нужно записать байты, которые могут принимать любое значение, от 0 до 255, в файле .js. Я проверил в отладчике, что результат [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?
Спасибо