Sorun neden : Birisi önceden belirtildiği gibi:
Bir bayt [] ile başlıyorsanız ve aslında metin verisi içermiyorsa, "uygun dönüşüm" yoktur. Dizeler metin içindir, byte [] ikili veriler içindir ve yapmanız gereken tek şey, kesinlikle gerekmedikçe aralarında dönüştürme yapmaktan kaçınmaktır.
Ben bir pdf dosyasından byte [] oluşturmaya çalıştıktan sonra Dize dönüştürmek ve sonra Dize giriş olarak alarak ve dosyaya geri dönüştürme çalışırken bu sorunu gözlemliyordum.
Kodlama ve kod çözme mantığınızın benim yaptığımla aynı olduğundan emin olun. Bayt [] 'ı açıkça Base64'e kodladım ve dosyayı yeniden oluşturmak için kodunu çözdüm.
Kullanım durum:
nedeniyle bazı sınırlama ben gönderilenle çalışıyordu byte[]
içinde request(POST)
ve süreç aşağıdaki gibidir:
PDF Dosyası >> Base64.encodeBase64 (bayt []) >> Dize >> İstekte gönder (POST) >> alma Dize >> Base64.decodeBase64 (bayt []) >> ikili oluştur
Bunu deneyin ve bu benim için çalıştı.
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[]
İkili verileriniz veString
metniniz için a kullanmanın yanlışlığı nedir ?