2011-07-22 12 views
2

キーから複数の値を読み込み、コンマで区切ってjavaのプロパティファイルからarraylistに格納する方法を知っていた人はいませんか?Javaのプロパティファイルで値を繰り返す方法


私は性質がそれにちょうどこれでファイルをしている:

currentProposalsLocation = C:/ DocumentsとSettings /インターン プロジェクト/抽出した項目
keywordsList =「A、B、 C、D、E、F」


static String proposalsDirectory; 
    static ArrayList<String> keywordsList = new ArrayList<String>(); 
    private static final String PROP_FILE="C:/Documents and Settings/Intern Project/ipConfig.properties"; 

public static void readPropertiesFile() 
{ 
    try 
    { 
     InputStream is = XMLTagParser.class.getResourceAsStream(PROP_FILE); 
     Properties prop = new Properties(); 
     prop.load(is); 
     proposalsDirectory = prop.getProperty("currentProposalsLocation"); 
     //?????What to do here???? 
     is.close(); 
    } 
    catch(Exception e) 
    { 
     System.out.println("Failed to read from " + PROP_FILE + " file."); 
    } 
} 

を誰もが私を助けることができれば、私はそれを本当に感謝:そして、これはプロパティファイルをロードするための私のコードです。

+0

サンプルの入力ファイルを提供し、要求される出力を記述することはできますか? – zacheusz

+0

@zacheusz私のコードの上にある2行は、入力ファイルの内容です。そして期待された出力は、もともと私が指摘した通りです。すべての値が格納されたarraylistです。 –

答えて

8
keywordsList.addAll(Arrays.asList(prop.getProperty("keywordsList").split(",")); 

+0

まさに私が探していたものです。どうもありがとうございました! –

3

PropertiesHashTableMapを実装して拡張し、あなたがkeySet()を使用してSet<String>など、すべてのキーを取得することができます。

任意のプロパティ値は文字列です。区切り文字を指定して文字列を分割することができます。

そのオブジェクトをプロパティに追加する方法を尋ねる場合、答えは「できません」です。プロパティは、StringキーとString値を使用します。マルチマップ動作(Stringキー、List値)が必要な場合は、独自に実装する必要があります。 Properties

+1

waitこれはキーを繰り返し処理するか、コンマ区切りの値を取得することですか? haha –

+1

質問は両方を聞くと解釈できます。 – duffymo

1

もう1つのオプションを追加するだけで、プロパティをXMLファイルに設定し、Spring Dependency Injectionを使用してJavaコード内のオブジェクトにロードしてから操作することができます。

依存関係注入では、そのリストをXMLで直接リストに設定することができます。そのため、カンマ区切りの文字列をリストに変換するという忙しい作業をすべて行う必要はありません。

関連する問題