首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从文件中创建对象并将其存储到数组中。文件类似于(tools = 2000;fixTools=500等)

从文件中创建对象并将其存储到数组中。文件类似于(tools = 2000;fixTools=500等)
EN

Stack Overflow用户
提问于 2020-05-16 20:53:01
回答 1查看 17关注 0票数 0
代码语言:javascript
复制
BufferedReader bin = new BufferedReader(new FileReader("C:\\Users\\ASUS\\eclipse-workspace\\MissionMars\\src\\phase-2"));
String line;

ArrayList <Items> point = new ArrayList<Items>();
while((line=bin.readLine())  != null  ) 
{
    String [] value = line.split(" = ");
    String x=value[0];  
    int y=Integer.parseInt(value[1]);

    Items obj1 = new Items(x,y);

    obj1.setName(x);
    obj1.setWeight(y);

    point.add(obj1);
}

System.out.println(point);

我的节目显示:

java.lang.NumberFormatException:用于输入字符串:“5000".

EN

回答 1

Stack Overflow用户

发布于 2020-05-16 20:59:19

作为一种普遍的实践,您应该在处理输入的代码中更加防御性一点。在这种情况下,在异常中所显示的数字字符串中有一个前导空格。你可以用这样的方法解决这个问题:

代码语言:javascript
复制
...
int y = Integer.parseInt(value[1].trim());
...

这将处理前导和尾随空格,但是如果数字格式不太好,程序仍然会抛出异常。我建议将解析放在一个try/catch块中,当出现异常时,您可以在其中设置合理或有意义的默认值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61843407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档