1行に3つの文字列データ型で構成されるデータファイルを読み込んでいます。各行は個別に読み取られ、tempと呼ばれるArrayListに格納されます。tempの3番目の要素を取得し、それをマップのキーとして使用して、キーをTempのコンテンツにマップし、各行に対してこれを実行したいと思います。次のコードがあります。これはコンパイルされますが、実行すると、parsedDataへの割り当てでnullエラーが発生します。
Map<String,ArrayList<String> > parsedData;
int pos;
String line;
StringBuilder buffer = new StringBuilder();
ArrayList<String> temp;// = new ArrayList<String>();
try {
temp = new ArrayList<String>();
while ((line = inBufR.readLine()) != null){
buffer.append(line);
while (buffer.length() != 0){
pos = buffer.indexOf(delim);
if (pos != -1){ //Cases where delim is found
temp.add( buffer.substring(0,pos).trim() );
buffer.delete(0,pos+delim.length()); //Cannibalizing the string
while ( (buffer.indexOf(delim)) == 0){
buffer.delete(0,delim.length());
}
} else { //Cases where delim is not found
temp.add( buffer.substring(0,buffer.length()).trim() );
buffer.delete(0,buffer.length()); //clearing the string
} // else
}//while (buffer.length() !=0
parsedData.put(temp.get(keyCol) , temp);
temp.clear();
}//while ((buffer = inBufR.readLine()) !=null)
} catch (Exception e) {
System.err.println("ERROR: " + e.getMessage());
}