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