My application uses a BinaryWriter filestream to create its data (instead of an actual database). I have both numeric and string variables. According to the docs,, the strings are actually written with a length-prefix value before the actual string and supposedly this is a two-byte variable. When I check the stream position after a string is written, it only appears to be a one-byte prefix. What am I not understanding correctly here? Does the prefix change size depending on the string variable length? I understand you don't actually read the prefix in the BinaryReader stream, it's internal, but the position within the stream is critical. There are situations where I need to skip over some variables in the data (using the stream seek with an offset), so accounting for these additional string variable prefixes is required.