All "data" is bytes. When you're writing or reading any data you're always dealing with bytes.
A double in java is 8 bytes. A double in c# is also 8 bytes. (8 bytes = 64 bits).
What is the best file type to save this as that can be reopened in a C# application?
This is fundamental misconception. There are no file types. There's no such thing as a "text file" or an "mp3 file" etc. They are just collections of bytes in memory.
You can give your 'collection of bytes' (file) any kind of name you want. This name is used by the operating system to locate the collection of bytes on the hard disk.
The name has nothing to do with the data inside the file.
Then why do some file names have ".txt" or ".pdf" at the end? The only reason here is that the Operating System can look at the name and by looking at the end it will decide what program it will open that file with (Since you almost always have a default program for certain files).
If the OS doesn't recognize the file name it will ask you to find a program to open it with.
If you open an mp3 file with a text editor you will see what the bytes that makes the mp3 file would look like if the bytes were
interpreted as text.
The only difference between a "txt file" and an "mp3 file" is how the bytes are ordered.
So in this case I'd probably make up my own "file type" (schematic of how the bytes are ordered).
If I know how the bytes are ordered, as I should since I myself came up with it, I can read (interpret) and write it willy nilly.
So if I'd want to save thousands of doubles, I'd probably at the beginning of the file stick an int (4bytes = 32bits) to tell how many doubles this file holds. Then I'd stick in all the doubles after each other.
[int][double][double][double]
Doing it as a "txt file" only means that you will convert your bytes into an order that your ordinary text editor can interpret correctly.
The minimum bytes needed to represent a character (eg: 'a', '.' or '4') is 1 byte (ASCII charset).
You would need to convert each double into a String of characters. As sproingie pointed out a double represented as a string would take approximately 56 characters or 56 bytes instead of the 8 bytes that actually make up the data of a double.
Then to make it back into a double in c# you would have to interpret/convert these strings into a double again.
All of this unnecessary encoding and decoding will make your file about 56/8=7 times bigger and possibly lose precision along the way.
The only benefit/disadvantage of doing this is you can open the file in a text editor and see an approximation of the doubles as a string.