3

名前が部分的にわかっているファイルを読み取ります。次のようなファイルがほとんどないとしましょう。

  • apple_5_34.jpg
  • orange_3_67.bmp
  • バナナ_1_13.gif

そして、「リンゴ」、「オレンジ」、または「バナナ」という単語しか知らないときに、これらのファイルに InputStream を取得したいと考えています。

どんな提案でも大歓迎です。事前に感謝します。

4

2 に答える 2

3

ディレクトリを呼び出しlistFiles()てファイル配列を取得し、それをループして、あるかどうかを確認File[i].getName().toLowerCase().startsWith("banana")し、そうであればInputStreamfor を取得しFile[i]ます。

于 2012-10-25T18:37:26.560 に答える
2

2つのオプションがあります:

すべてのフォルダコンテンツでループを実行し、startsWith上記で定義された3つの名前すべてのケースを確認します。

またはregex次のように実行します:

[apple|banana|orange]+([\d\D]+)

また

/\b[apple|banana|orange][^\b]+\b/g

コードのスニペット

 InputStream in = null;

if(File[i].getName().matches("[apple|banana|orange]+([\d\D]+)")){
 in = new FileInputStream(File[i]);
}
于 2012-10-25T18:58:10.797 に答える