package uk.co.mmscomputing.util.configuration; import java.io.*; import java.util.*; public class ConfigurationReader extends FilterReader{ public ConfigurationReader(Reader in){ super(new BufferedReader(in)); } public ConfigurationReader(String filename)throws IOException{ this(new FileReader(filename)); } public void read(Map map)throws IOException{ StreamTokenizer st= new StreamTokenizer(in); st.wordChars('_','_'); int t=0;String key="",value=""; while((t=st.nextToken())==st.TT_WORD){ key=st.sval; if((t=st.nextToken())!='='){ throw new IOException("Expect [=] have ["+t+" , "+((char)t)+"]"); } t=st.nextToken(); switch(t){ case '"': value=st.sval; break; default: throw new IOException("Expect [Quoted String] have ["+t+"]"); } if((t=st.nextToken())!=';'){ throw new IOException("Expect [;] have ["+t+"]"); } map.put(key,value); } } }