Чому виникла проблема: Як хтось уже вказав:
Якщо ви починаєте з байту [], а він фактично не містить текстових даних, немає "належного перетворення". Рядки для тексту, байт [] - для двійкових даних, і єдине дійсно розумне, що потрібно зробити, - це уникати перетворення між ними, якщо вам абсолютно не потрібно.
Я спостерігав за цією проблемою, коли я намагався створити байт [] з pdf-файлу, а потім перетворив його в String, а потім взяв String як вхід і перетворив назад у файл.
Тому переконайтесь, що ваша логіка кодування та декодування така сама, як я. Я явно закодував байт [] до Base64 і розшифрував його, щоб створити файл знову.
Використання регістра:
З - за деяких обмежень я намагався відправити byte[]в request(POST)і процес наступним чином :
Файл PDF >> Base64.encodeBase64 (byte []) >> String >> Відправити запит (POST) >> отримати String >> Base64.decodeBase64 (byte []) >> create binary
Спробуйте це, і це працювало для мене ..
File file = new File("filePath");
byte[] byteArray = new byte[(int) file.length()];
try {
FileInputStream fileInputStream = new FileInputStream(file);
fileInputStream.read(byteArray);
String byteArrayStr= new String(Base64.encodeBase64(byteArray));
FileOutputStream fos = new FileOutputStream("newFilePath");
fos.write(Base64.decodeBase64(byteArrayStr.getBytes()));
fos.close();
}
catch (FileNotFoundException e) {
System.out.println("File Not Found.");
e.printStackTrace();
}
catch (IOException e1) {
System.out.println("Error Reading The File.");
e1.printStackTrace();
}
byte[]для своїх бінарних даних таStringтексту?