将数据从.txt文件返回到arraylist

时间:2014-10-26 21:19:40

标签: java

好的,所以我给了一个带有几个对象的txt文件,这些对象拥有构造函数要求的描述,成本和折旧百分比。在我的tostring()方法中,我只想要返回我输入的一些值。我遗漏了用于计算当前值等所有方法的所有方法,因为它们与我提出的问题无关。

public class InventoryItem {

    private String description;
    private double cost, percentDepreciated;
    public static final double DEPRECIATION_MIN = 0.0,
            DEPRECIATION_MAX = 1.0;

    public InventoryItem(String descriptionIn, double costIn, double percentDepreciatedIn) {
        description = descriptionIn.trim();
        cost = costIn;
        percentDepreciated = percentDepreciatedIn;
    }
    public String toString() {
        DecimalFormat df = new DecimalFormat("#,###.00");
        String output;
        output = "Description: " + description;
        output += "\nCost: $" + df.format(cost);
        output += "\tPercent Depreciation: " + (percentDepreciated * 100 + "%");
        output += "\nCurrent Value: $" + df.format(currentValue());
        if (isEligibleToScrape()) {
            output += "\n*** Eligible to scape ***";
        }
        if (percentDepreciatedOutOfRange()) {
            output += "\n*** Percent Depreciated appears to be out of range ***";
        }
        return output;
    }
}

所以我现在问的是,我得到了一个txt文件,其中包含多个对象的上述信息,如何返回每个InventoryItem对象的信息,并将其格式化为上述toString()方法。我需要在清单类

中的toString()方法中执行此操作
public class Inventory {

    private String name;
    private ArrayList<InventoryItem> inventoryList = new ArrayList<InventoryItem>();

    public Inventory(String nameIn, ArrayList<InventoryItem> inventoryListIn) {
        name = nameIn;
        inventoryList = inventoryListIn;
    }
    public String toString() {
    }
}

2 个答案:

答案 0 :(得分:0)

我会说toString()方法有一个完全不同的目的,以这种方式实现它是一个非常糟糕的主意。你想要的是你的InventoryItem类的某种'文本序列化器'。

至于问题本身(如果你真的非常需要这样做......)你可以创建一个StringBuilder并将每个InventoryItem的toString()方法的输出附加到它。

答案 1 :(得分:0)

如果我理解正确,您需要从.txt文件中获取数据并在程序中使用该数据。要从.txt文件中获取数据,可以使用Scanner类,如下例所示:

Scanner s = new Scanner(new BufferedReader(new FileReader("your-txt-file.txt")));

然后扫描你应该使用的每一行:

while (s.hasNext()) {
    // Here you should decompose every line of string to the desired variables
}

您可以使用.substring()删除String的部分内容,并将这些值分配给变量。