EDT and EDTA are quite simple file formats to understand.
A binary file stores a series of numbers as bits (1/0 value), grouped into bytes (8 bits). When Java reads a file, it reads it byte by byte, and each byte is interpreted as an integer. Character encodings map each integer value to a letter, number, or symbol. EDT's Strings (names and values) are stored in the encoding ISO-8859-1. Values 1-8 are unused, so EDT uses them for it's own purposes.
The integer 0 marks the start of a tag's name,
The integer 1 marks the end of the tag's name and the start of the tag's value, and
the integer 2 marks the end of the tag's name, and therefore the end of the tag, allowing a new tag to start.
Anything other than those integers is used as either the tag's name (between 0 and 1), or the tag's value (between 1 and 2), in ISO-8859-1.
EDTA extends on this simple system.
It uses the same binary data, but the tag's value is prefixed with a number from 0 to 6, followed by a colon, marking the data type of the following value.
The following is a list of data types:
0=String
1=int
2=boolean
3=float
4=double
5=long
6=byte