>>121
エンディアン間違ってるだけなら、
value = in.readDouble();
value = Double.longBitsToDouble(Long.reverseBytes(Double.doubleToLongBits(value)));
で変換できる。最初から正しいエンディアンで読み込む方が楽だろうけど。
C言語のdoubleはフォーマットは処理系依存だったような気がするから、
そっちも調べてみるべきかも。NaNとか無限大も変換したいなら特に。

ファイル末尾に改行云々は何したいのかわからん。
改行を発見できないとエラーにするプログラムが書きたいのか、
意図しない「改行が発見できないよエラー」が出て困ってるのか。