multipart/MIMEのパーサー探しています。
探し方よくないか、理解できないか、どうも混乱しています。
読みたいファイルのヘッダー情報格納されている部分はContent-Type: text/xml;UTF-8式になっていて、IEEE754/float式で格納されている部分(バイナリ部分)はContent-Type: application/octet-streamになっています。
バイナリデータとヘッダー情報の間、--MIME_boundary-2などで区別されています。
上記なようなファイルをJavaでどうやって読むのでしょうか?
DataInputStream使って一つバイトづつ読んで又いろいろString処理してやろうと思ってたのですが、非常に時間かかって(それでもまだ成功していないですが)ものにならない。
既存のパーサーあるはずとの思い強い。
以前、ここで少し教えてもらったことありますが、ググってもどのクラスを使うのか分かりません。
Java標準にはそのようなライブラリーはなさそうですが。。
ググって見つかったのはIBM/Lotus ソフトウェアのMIME Entity クラス。これって、「proprietary」ではないかな。もちろんjavaみたいなフリーライブラリーがほしいんです。
もう一つ見つかったのはmime4j.使い方今から調べます。
multipart/MIME扱い経験ある方々、教えてください。
とりあえず、キーワード見つかって、ネットで見つかったら読んで、理解できるのかみてみたいです。
よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
そのマルチパートメッセージがHTTPリクエストボディなのであればApache Commons FileUploadを使えばいいと思う。
ライセンスはもちろんApache License 2.0。
そのマルチパートメッセージが電子メールなのであればJavaMailを使えばいい。
http://www.oracle.com/technetwork/java/javamail/ …
ライセンスはJavaMail 1.4はthe Oracle Binary Code License Agreement for Java EE Technologies。プロプラなライセンスなんだけど、JavaMailに関してはロイヤリティーフリーであるとOracle社が明言している。ソースコードの提供は無い。
JavaMail 1.5はCDDL v1.1 and GPL v2 with Classpath Exceptionだ。
JavaMailは本来SMTPでメールを送信したりPOP3やIMAP4でメールを受信したりする時に使うJava標準拡張パッケージライブラリなんだけど、マルチパート電子メールの作成・解析の機能も持っているのでそこだけ使えばいい。
CDDL v1.1 and GPL v2 with Classpath ExceptionはCDDLとして使用すればあなたが開発した部分のソースコードは公開しなくて良いはずだが、ライセンス問題に敏感である場合はJavaMail 1.4.7を使うのが吉だろう。
anmochiさん
コメントありがとうございます。
問題はこの読み取りしたいファイルはHTTPリクエストボディも電子メールもないです。
ある機械が出力した膨大なデータ(グラフで見ると10~11桁の数値です。)が格納されているファイルです。データの説明のため、XML式でヘッダー情報もあります。
以下、ファイルを簡単化したサンプルです。
//-------------------------
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="MIME_boundary-1"; type="text/xml";
Content-Description: 何か説明文
--MIME_boundary-1
Content-Type: text/xml; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Content-Location: dataHeader.xml
<?xml version="1.0" encoding="UTF-8"?>
<Header>
dataSize =123456
</Header>
--MIME_boundary-2
Content-Type: application/octet-stream
Content-Location: data.bin
XXXXXXXXXX ここに上記dataSize分のバイナリ(float)データあります
--MIME_boundary-2
このような場合ですが、「data.bin」以下、次の境目(boundary)見つかるまで(つまり、dataSize分)のデータを読み、配列等に保存したいです。
非常に大きいデータ量ですのでstring処理で一バイト筒読むのはだめです。ですのでパーサーを使いたいです。
困っています。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP Content-Typeが機能していない? 2 2022/07/17 11:10
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- 就職 先のことが不安すぎる(主に就職活動) 3 2023/06/27 09:37
- 日本語 きみの嫁さんは私が見つけてあげるよ。 11 2022/11/13 21:01
- その他(悩み相談・人生相談) やることが沢山あり過ぎて頭の中がオーバーヒート 混乱、困惑し過ぎて結局何一つ出来てない 優先順位付け 3 2022/04/19 21:42
- 国家公務員・地方公務員 公務員試験の数的処理で苦戦しています。 1 2023/01/30 08:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaでuseBeanエラーの解決方法
-
【Eclipse】パッケージ・エクス...
-
Eclipseでデバッグが出来ないエ...
-
EclipseでHTTP404エラーが出る。
-
Struts2のプログラムについて
-
Java初心者です。 コマンドプロ...
-
DOMParserを使いたいのですが
-
classファイルについて
-
Warファイルの解凍について質問...
-
CLASSファイルの暗号化
-
ディレクトリ内の名前を取得す...
-
jdbcドライバのjarファイルにク...
-
JAVAアプレットがブラウザで実...
-
Eclipse「リフレッシュ」と「ク...
-
C#のビルド方法について質問です。
-
FileWriterで8kb以上書き込むに...
-
javaFXをEclipseで動かしたい
-
javaクラスファイルをEclipseで...
-
java クラスファイルとソースコ...
-
html上で、バッチやexeファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
javaクラスファイルをEclipseで...
-
Eclipse「リフレッシュ」と「ク...
-
classファイルについて
-
SVFの設定について:クラスパス...
-
eclipse でclassesフォルダーが...
-
EclipseでHTTP404エラーが出る。
-
earファイルを展開する方法
-
【Eclipse】パッケージ・エクス...
-
JADで*.jarごとデコンパイルす...
-
プログラム実行の際に、「ソー...
-
jdbcドライバのjarファイルにク...
-
「削除するか、クラスパスの正...
-
コンパイルをしようとするとエ...
-
java クラスファイルとソースコ...
-
コンパイルした後 java (class...
-
【Eclipse】逆コンパイルでエラ...
-
Javaアプリケーションのアイコ...
-
VisualStudioでC++クラスを追加...
-
「メイン・マニフェスト属性が...
おすすめ情報