This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Welcome to the Ranch
What you are doing is creating each object inside the loop, and not keeping a variable (at least not in the code shown) which points to it outside the loop. When you get to the end of the loop, player points to the last‑created object.
Maybe you meant to keep the Player objects in a List or an array. Maybe the addPlayerInfo method does keep a copy of all their references.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com