Are they encrypted? Do they use special characters that look like garbage to text editors and not to the game?
No they are generally just binary data files. Ther eason they look like garbage to you in your text editor is becasue they are binaries, not text.
Binary data is much faster and easier for the computer to read and write but is not human redable.
How do they communicate anything whatsoever to the game? These things puzzle me to no end.
See DataInputStream and DataOutputStream in the Javadoc. Basically, the game knwos the order in which the data was written into the file and reads it out in the same order.