Originally posted by Bob Zoloman:
3. What is the difference between a text file with all 1's and 0's and a binary file containing 1's and 0's?
I have the vague feeling that there is a misunderstanding about this between you and Paul.
While storing text into text files really comes down to storing bits (1's and 0's), the '1' and '0' *characters* are very different!
Those characters are encoded due to some standard, in Java UTF (-> 16 Bits), in most file systems some variant of ASCII (-> 8 Bits).
Saving a String in binary won't make much difference, because they are already encoded in binary in text files. In fact, the missing conversion from UTF to ASCII can actually make the binary files bigger than the text files, as you have noticed.
The difference comes when you are storing, for example, numbers.
The int value 1234567890 takes 64 bits in a binary file (as *every* int value does). When writing the value as a string in a text file, it would likely take 80 bits (8 for each digit). And, as Paul already explained, it also makes it harder to read the file (for the program).