! BufferedReader readLine() 错误?

求助!!! BufferedReader readLine() 异常??
之前还好好的,这几天就报……???没分了
br.readLine()没读完文件(obj文件)就跳到catch(Exception e)为什么读一半就报错??菜鸟求解!谢谢!!!

public  void loadFromFile(String fname, Resources r){
        ArrayList<Float> alv=new ArrayList<Float>();
        ArrayList<Short> alvResult=new ArrayList<Short>();
        ArrayList<Short> alvfResult=new ArrayList<Short>();
        ArrayList<Float> alvn=new ArrayList<Float>();
        ArrayList<Short> alvnResult=new ArrayList<Short>();


        boolean bol=false,bol2=false ;


        try{
            InputStream in=r.getAssets().open(fname);
            InputStreamReader isr=new InputStreamReader(in);
            BufferedReader  br=new BufferedReader(isr);
            String temps=null;
            while((temps=br.readLine() )!=null)
            {
                String[] tempsa=temps.split("[ ]+");
                Log.e("JJJJJJJJJJJJJJJJ", temps);
                if(tempsa[0].trim().equals("v") )
                {

                        alv.add(Float.parseFloat(tempsa[1]));
                        alv.add(Float.parseFloat(tempsa[2]));
                        alv.add(Float.parseFloat(tempsa[3]));

                }else if(tempsa[0].trim().equals("vn"))
                {
                    alvn.add(Float.parseFloat(tempsa[1]));
                    alvn.add(Float.parseFloat(tempsa[2]));
                    alvn.add(Float.parseFloat(tempsa[3]));
                }
                else if(tempsa[0].trim().equals("vt")){
                    //alvt.add(Float.parseFloat(tempsa[1]));
                   // alvt.add(Float.parseFloat(tempsa[2]));

                }
                else if(tempsa[0].trim().equals("g")){

                   
                }
                else if(tempsa[0].trim().equals("f"))
                {
                    if( !bol && !bol2 ){
                        Short sh = Short.parseShort(tempsa[1].split("/")[0]) ;
                        sh--;
                        alvResult.add( sh  );
                        sh = Short.parseShort(tempsa[2].split("/")[0]);
                        sh--;
                        alvResult.add( sh  );
                        sh = Short.parseShort(tempsa[3].split("/")[0]);
                        sh--;
                        alvResult.add( sh  );

                    }else {

                        Short shd = Short.parseShort(tempsa[1].split("/")[0]) ;
                        shd--;
                        alvfResult.add( shd  );

                        shd = Short.parseShort(tempsa[2].split("/")[0]);
                        shd--;
                        alvfResult.add( shd  );

                        shd = Short.parseShort(tempsa[3].split("/")[0]);
                        shd--;
                        alvfResult.add( shd  );

                    }


                   /* alvtResult.add( Short.parseShort(tempsa[1].split("/")[1])  );
                    alvtResult.add( Short.parseShort(tempsa[2].split("/")[1])  );
                    alvtResult.add( Short.parseShort(tempsa[3].split("/")[1])  );
                    */
                    Short  sh = Short.parseShort(tempsa[1].split("/")[2]);
                    sh--;
                    alvnResult.add( sh  );
                    sh = Short.parseShort(tempsa[2].split("/")[2]);
                    sh--;
                    alvnResult.add( sh  );
                    sh = Short.parseShort(tempsa[3].split("/")[2]);
                    sh--;
                    alvnResult.add( sh  );

                }
            }

            isr.close();
            br.close();
            Log.e("DDDDDDDDDDD",""+alvResult.size());
            //toarr(alv, alvResult,alvfResult, alvn,alvnResult);
        }catch(Exception e){

            Log.e("GGGGGGGGGGGGGGG",""+alvResult.size());
            //toarr(alv, alvResult,alvfResult, alvn,alvnResult);

        }


    }

------解决思路----------------------
很多可能,也许你的文件坏了,也许内存不足。你调试看看异常的详细信息就知道原因了。

------解决思路----------------------
既然是.obj文件,那是二进制文件,怎么能用temps=br.readLine()来读取数据呢?