! BufferedReader readLine() 错误?
求助!!! BufferedReader readLine() 异常??
之前还好好的,这几天就报……???没分了
br.readLine()没读完文件(obj文件)就跳到catch(Exception e)为什么读一半就报错??菜鸟求解!谢谢!!!
------解决思路----------------------
很多可能,也许你的文件坏了,也许内存不足。你调试看看异常的详细信息就知道原因了。
------解决思路----------------------
既然是.obj文件,那是二进制文件,怎么能用temps=br.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()来读取数据呢?