2011-12-06 45 views
0

フラットファイルに1行で移動した連続した文字列を取得しています。今、これらの文字はフォームの下に来ています。私が欲しいもの文字列の解析

keepalivekeep_aliveenroll,10.213.17.4,0,12,594,4,5,METRO-A,1enroll,10.213.17.4,0,13,594,4,5,METRO-B,1clear,10.213.17.4,0,14,100010934,1323168443 

は異なるライン内の特定のタグ(keep_aliveclearenroll、など)の間に来るメッセージを移動することです。たとえば、上記の出力は次のようになります。

keep_alive  
keep_alive                  enroll,10.213.17.4,0,12,594,4,5,METRO-A,1 
enroll,10.213.17.4,0,13,594,4,5,METRO-B,1 
clear,10.213.17.4,0,14,100010934,1323168443 

Javaでこれを行うには、どのような方法が最適ですか?ここで注目すべき点は、ファイルが連続的なデータを取得していることと、何らかのループでこれを連続して実行する必要があることです。

+0

これは何百もの方法でプログラミングが必要です。あなたは、仕事のいくつかを行うために "正規表現"を採用することができるかもしれません。 –

+0

おかげさまで、いくつかのAPIが存在するかどうかを理解しようとしていました。 – learner

答えて

0

Javaは非同期ファイル操作をサポートしていません。つまり、すでにファイルを開いているときにファイルを変更した場合、Fileオブジェクトは、新しいFileオブジェクトを開かずにファイルに加えた変更は無視されます。代わりにstreamにデータを書き込むことをお勧めします。StringBuffer(気になりますが、私はそれが嫌いです)がここで動作します。

要するに、あなたがやっているやり方でやりたいことはできません。

+0

ありがとうジョン、私は本当にデータをダンプしたファイルに入れる必要はありません。私は文字のストリームを文字列に変換してから一致するかどうかを確認する必要があると思います。 – learner

+0

これはうまくいくが、連続入力が必要な場合は、ある種のバッファを使う必要がある。そうすれば、ライン全体が書き込まれるのを待つのではなく、入ってくるものを管理することができます。 – Jon