思い込み

いろいろ試しているうちにAPIリファレンスを眺めて気が付いた。
java.io.PrintWriter(Writer, boolean)を除くコンストラクターで作成されたPrintWriterは、
without automatic line flushingだったのだ。
ということで、Javaからのset outputによるgnuplot側でのフラッシング命令は、
実行されてなかったのではなく、それ以前にgnuplotに届いていなかったのだった。
実際、その直後にPrintWriter#flush()で明示的にフラッシュすると、
ストリームを閉じなくても問題なくImageIO#readは構築したImageを返してくる。
改行でフラッシュ動作をするものという思い込みで間違った解釈をしてしまった(・ω<)