Zum Inhalt springen

Akopalüze Now

Mitglieder
  • Gesamte Inhalte

    1
  • Benutzer seit

  • Letzter Besuch

  1. Hi frquadrat, Ich habe ein ähnliches Problem: Ich muss eine Date auslesen und in einem String speichern. Dann soll der String weiter gegeben und bearbeitet werden. Am Ende soll aus dem String wieder ein Byte Array erstellt werden und wieder in eine Datei geschrieben werden. Weil ich der ganzen Sache nicht so traue bevor ich dann den String weiterreiche, habe ich mir ein kleines Testprog geschrieben, daß im Prinzip nichts anderes macht als: -Datei in einem Byte[] speichern -den Byte[] dann mit toString in einen String umwandelt -dann den String wieder in ein Byte[] wandelt -beide byte[] vergleicht -den aus dem String generierten byte[] dann weider in eine andere Datei schreibt Ergebnisse dieses progs: -Die Länge der beiden Byte[] ist schon mal anders wenn ich "utf-8" benutze -Außerdem sind sowohl bei der Benutzung von "utf-8" als auch ohne, die Beldung der Arrays anders -Wenn ich UTF-8 weglasse, dann ist die Länge und der größte Teil der Belegungen der Arrays identisch. Problem: - Auch wenn ich utf-8 weg lasse, dann ist die entsande Kopie der Datei nicht identisch Warum String: -Ich bin auf Grund der Rahmenbedingunen meines Projekts auf den String angewiesen, um die Datei in StringForm weiter verarbeiten zu können Jetzt der java code: String content = ""; String filename = "C:\\pdf1.pdf"; //Datei in byte data[] einlesen File file = new File(filename); FileInputStream fileInputStream = new FileInputStream(file); byte[] data = new byte[(int) file.length()]; fileInputStream.read(data); fileInputStream.close(); //byte data[] als String in String content speichern content = new String(data,"utf-8"); //String content wieder in ein byte[] konvertieren byte[] a = content.getBytes("utf-8"); //beide byte[] vergleichen System.out.println(data.length); System.out.println(a.length); for (int i = 0; i < data.length; i++){ if(data[i]!= a[i]) { System.out.println( i +"--" + data[i] + "---" + a[i]); } } //und noch zum Praxistest in eine Datei schreiben FileOutputStream f = new FileOutputStream(new File("C:\\lala.pdf")); f.write(a); f.close(); Ziel: Ich will es schaffen eine z.B. pdf-datei auszulesen, diese dann in einen String zu wandeln und dann den weg zurück wieder zu schaffen um am ende erstmal eine identische Kopie der ausgangsdatei zu haben. Wenn ich UTF-8 weglasse sind die beiden Dateien zwar gleich groß, aber eben nicht identisch, so daß die kopierte PDF nicht richtig angezeigt wird, wenn man diese öffnet Wichtig: Es geht mir nicht darum irgendwie eine Kopie zu erstellen, die ich dann öffnen kann, sondern der Transfer von byte[] ind String und dann wieder in byte[] muss klappen. Frage: Was mache ich falsch?

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...