public void save(OutputStream outputStream) throws Exception
{
    PrintWriter writer = new PrintWriter(outputStream);
    writer.println(this.name);
    writer.println(this.assets.size());
    if(this.assets.size() > 0)
    {
        for(int i = 0; i < this.assets.size(); i++)
        {
            writer.println(this.assets.get(i).getName());
            writer.println(this.assets.get(i).getPrice());
        }
    }
}

public void load(InputStream inputStream) throws Exception
{
    int numAssets = 0;
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    this.name = reader.readLine();
    numAssets = Integer.parseInt(reader.readLine());
    if(numAssets > 0)
    {
        for(int i = 0; i < numAssets; i++)
        {
            this.assets.add(new Asset(reader.readLine(), Double.parseDouble(reader.readLine())));
        }
    }
}
I think I've accounted for everything.The conditions specifically say that name is never empty, so you don't need a check for that I'm assuming (meaning I don't need something similar to isNamePresent from the previous lesson). I store the number of assets in the file, and then loop based on that number to read/write the asset values. Replacing writer.println with System.out.println, it appears that it should be writing the data correctly. Anyway, the first two conditions aren't validating. Looking to get an idea what I'm not doing correctly.