With serialzation, all public members of the object are serialized. Is this what you want? If you have some members you don't want to be serialized you can mark them with attributes to prevent this. Check that your problem is not with your code logic. Step through carefully and check that you aren't accidently serializing more than you meant too. (Like the same object twice). If you switch to xml serialization you can look at the data and check that only the correct stuff is there. Then once your happy with the data being outputed, switch back to binary again. Comments on the code (Numbers indicate line in code I'm talking about): 1) The for loop here is incomplete. I'm assuming you just want to loop through all objects in the array h, buy maybe more code is missing. 2) the variable a is never assigned a value other than 0. What is it's purpose? 3) For every line read in that starts with JJGENDRACE you are serializing the whole of the array h. I don't know whats in this array as you haven't included it's defination or population code, but why are you serializing the same array every time? This will be a huge waste of space if you are just serializing the same data over and over again. General comment: The variable names c, s, b, t, a, x and y are not very useful. If you used more descriptive veriable names that would help other people to read your code. = temp; if (t[x] == "") t[x] = "0"; x++; if (x == 1435) {