0

Java プログラムでパターン形式の UNIX ファイル システムからファイルを読み込もうとしています。

ファイル名のパターンは次のようになります。

"XYZ"+"abcd1234"+MMddyyyyHHmmss

例: XYZabc123403222012101329

「abcd1234」の中型は固定ではなく変化するので、英数字で総文字数7文字になります。

このようなパターンでファイルを読み取るにはどうすればよいですか? ファイルには、テキストまたはシリアル化されたオブジェクトを含めることができます。

String path="/tmp/somedir";

final File folder = new File("/tmp/somedir");
List<String> fileNames = new ArrayList<String>();

    try {
        for (final File fileEntry : folder.listFiles()) {
            if (fileEntry.isDirectory()) {
                listFilesForFolder(fileEntry);
            } else {
                //System.out.println(fileEntry.getName());
                fileNames.add(fileEntry.getName());
            }
        }

        for(String str: fileNames) {
            FileInputStream fileIn = new FileInputStream(path+"/"+str);
        }

    } catch(FileNotFoundException e) {
        e.printStackTrace();
    } catch(Exception e1) {
        e1.printStackTrace();
    }

ありがとうございました。

4

3 に答える 3

2

ファイルのフィルタリングにはレギュラー式を使用できると思います。これがapachecommonshttp ://commons.apache.org/io/api-release/org/apache/commons/io/filefilter/RegexFileFilter.htmlのドキュメントのクラスであり、 これに関する古い質問です。 ファイルフィルタリング用のJava正規表現

于 2012-08-22T19:05:07.730 に答える
0

正規表現を使用できる場合があります。私は今、C#でまったく同じことをしています。共通のプレフィックス、中央の日付、および共通のファイル拡張子を持つクライアントからのファイルがあります。

abc1234が常に7文字の長さであると仮定すると、次の正規表現パターンを使用できます。

XYZ。{7}\d {14}

。{7}は、任意の文字が最大7回出現できることを意味します。\ d {14}は、最大14桁をカウントすることを意味します。

于 2012-08-22T19:05:18.930 に答える
0

私はこのサイトをお勧めします、あなたはあなたのディレクトリからすべてのファイルを取得する方法を見つけるでしょう。

この後、メソッドで:acceptパラメータに正規表現を適用します:name

正規表現については、このリンクを参照してください。

于 2012-08-22T19:13:46.020 に答える