我写了一个类来读取.config文件,文件的格式是key=value这样,比如
aaa=bbbccc=222但是在hashmap.put的时候报空指针的错误package cf.sys;import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;public class InitialArgument {
private static HashMap<String,String> args;

private String configPath=System.getProperty("user.dir")+"\\.config";


public InitialArgument()
{
insertIntoHashMap(ReturnArray(ReadFile(configPath)));
}


public void insertIntoHashMap(List alist)
{
String str;
int e;
Iterator it=alist.iterator();
while(it.hasNext())
{
str=(String)it.next();
e=ReturnEqual(str);
if(e<1)continue;
System.out.println(str.substring(0, e)+" "+str.substring(e+1,str.length()));
args.put("111", "222");//这句话报空指针错误
}
}
public int ReturnEqual(String str) //返回“=”的下标
{

int e;
for(int i=0;i<str.length();++i)
{
e=str.charAt(i);
if(e=='=')
return i;
}
return 0;
}

public File ReadFile(String path) //文件是否可读
{
        File myFile=new File(path);
        if(!myFile.exists())
        { 
            System.err.println("Can't Find " + path);
            return null;
        }
        else
        {
         return myFile;
        }
}
public List ReturnArray(File file)
{
List al=new ArrayList();
if(file==null)
{
System.out.println("no context");
return null;
}
try 
        {
            BufferedReader in = new BufferedReader(new FileReader(file));
            String str;
            while ((str = in.readLine()) != null) 
            {
               if(str.contains("=") || str.contains("     "))
                  al.add(str);
            }
            in.close();
        } 
        catch (IOException e) 
        {
            e.getStackTrace();
            return null;
        }
return al;
}
public static void main(String[] a)
{
new InitialArgument();

//HashMap hm=new HashMap();
//hm.put("aaa", "11");
//hm.put("aaa", "22");
//hm.put("aaa", "33");
}
}大家帮忙看看阿,找了很久了,不知道错在哪