Question: this is my code:

```
FileOutputStream fOut = openFileOutput("things", Context.MODE_PRIVATE); 
fOut.write(thing.getBytes());

```

everytime i go through this method it erases the previous data in the file and overwrites it with the new one. I don't want this to happen because I want the text to be added Thanks for your help.

Answer: 
If you don't know how many elements there are going to be, you could use a `List<T>`:

```
var questions = new List<Question>();

var question = new Question(parameters);
questions.Add(question);

question = new Question(parameters2);
questions.Add(question);

```

Then you can access questions in the list, by directly accessing them or looping over them:

```
var questionTouse = questions[0];

// or

foreach (var q in questions)
{
    // do something with q
}

```

An alternative, if you want to be able to look up questions by their string key that *you* assign, you could use a `Dictionary<string, Question>()`:

```
var questions = new Dictionary<string, Question>();

var question = new Question(parameters);
questions["Question1"] = question;

question = new Question(parameters2);
questions["Question2"] = question;

```

Then to get items out of the dictionary, you refer to them by the key you added them with, or again, loop over them:

```
var questionTouse = questions["Question1"];

// or

foreach (var q in questions)
{
    // do something with q
}

```
Use an array

```
var questions = new Question[numquestion];
for (int i = 0 to numquestion)
{
   questions[i] = new Question(...);
}

```

now you can refer to questions[n]