SingleFileAudioPlayer streams audio to a file.
The SingleFileAudioPlayer doesn't write to the file until its close method is called. When an application calls setAudioPlayer on a voice, it is responsible for calling the close method. As such, you need to do just a little more work.
Try starting with just the very simple FreeTTS HelloWorld program and then modifying it very slightly as follows:
SingleFileAudioPlayer sfap = new SingleFileAudioPlayer();
helloVoice.setAudioPlayer(sfap);
helloVoice.speak("Thank you for giving me a voice. "
+ "I'm so glad to say hello to this world.");
sfap.close();
and this can create a wave file names "freetts.wav".
There is a topic about this, see also:
http://sourceforge.net/projects/freetts/forums/forum/137669/topic/1166875