java.lang.NullPointerException本帖最后由 ky5047 于 2012-11-05 22:45:29 编辑
            try{
			double save2[][]=null;
			FileReader fin = new FileReader("D:\\score.txt");
			BufferedReader br=new BufferedReader(fin);
			String temp;   //用来接收读取的一行字符
			//将信息从文件中读出,与所输入的学号进行比较,判断该学生是否存在
			int i=0;
			int j = 0;
			while((temp=br.readLine())!=null)
			{
				//将一条学生的信息非为学号、姓名、专业
				String stuInfo[] =temp.split(" ");
				
				for(j = 0; j<3; j++)
				{
					save2[i][j] = Double.parseDouble(stuInfo[j]);
				}
				i++;
			}
			for(i=0;i<save2.length;i++)
			{
				if(save2[i][2]<save2[i+1][2])
				{
					double t=save2[i][2];
					save2[i][2]=save2[i+1][2];
					save2[i+1][2]=t;
				}
			}
			for(i=0;i<save2.length;i++)
			{
				for(j=0;j<3;j++)
				{
					System.out.println(save2[i][j]);
				}
			}
			
			br.close();
			
		}catch (
IOException e)
		{
			e.printStackTrace();
		}
------解决方案--------------------
------解决方案--------------------必须要报java.lang.
NullPointerException异常啊。
你的二维数组没有定义直接实例赋值的:
double save2[][]=null;
save2[i][j] = Double.parseDouble(stuInfo[j]);这样不报错就怪了。
先给你一个实例,然后你有些地方要改的。实例如下:
String[] stuInfo={"25","45","64"};
		double[][] save2=new double[3][0];
		for(int j = 0; j<3; j++)
		{
		save2[j]=new double[1]; //分配空间,不可缺少
		save2[j][0] = Double.parseDouble(stuInfo[j]);
		}
		for(int i=0;i<3;i++)
		{ 
			System.out.println(save2[i][0]);
		} 
那么你的代码必须改成:
int i=0;
			int j = 0;
			save2=new double[3][0]; 
//.....
save2[j]=new double[j+1]; //这里必须要,分配空间
			save2[j][i] = Double.parseDouble(stuInfo[j]);//看清是[j][i]
//...同理下面你也要改。不过这样做不一定是你的需求,大概的原理就是这样。