回答編集履歴

1

追記

2016/11/07 10:04

投稿

KSwordOfHaste
KSwordOfHaste

スコア18392

test CHANGED
@@ -27,3 +27,27 @@
27
27
  蛇足3:
28
28
 
29
29
  Inflaterの代わりにInflaterInputStreamを使うと圧縮データの入力ストリームを圧縮解除した入力ストリームへ簡単に変換できます。そのほうが楽かも知れません。
30
+
31
+
32
+
33
+ ---
34
+
35
+
36
+
37
+ 質問者さんからのコメントにより追記(11/7 19:04):
38
+
39
+
40
+
41
+ バイナリーデータ部分をテキストエディタで読み込んでいたとのことでしたので、やはり文字化けが原因と思います。一般にバイナリーデータはいったん文字へ変換すると(※)と元のデータは復元できません。それはバイナリーデータと文字データとの間の変換が通常は不可逆なためです。
42
+
43
+
44
+
45
+ PDFをJavaで扱うためには入力にバイナリー入力ストリーム(InputStream)を使い、文字であることがわかっている部分のみをStringへ変換するといった配慮が必要になります。文字とバイナリーが混在したデータを扱う処理は少々難易度が高く「こうするとよい」といった簡単なアドバイスが自分にはできません。PDFの中身を解析する目的自体には専用のライブラリーを使う方がよいかも知れません。「java PDFReader free」などで検索するといくつかあるようです。
46
+
47
+
48
+
49
+ ※:文字へ変換
50
+
51
+ Java上では文字列ストリームを使ったり、Stringに変換したりすることにあたります。またテキストエディタで開くといったことも同様です。
52
+
53
+