There's nothing wrong with either approach. If you have limited clients the second option will suffice (and possibly even thrive based on a multicore architecture), otherwise it might be beneficial to let java.nio manage your resources.
See this question on the same topic, as well as this other post, or why not consider this blog post which argues against using java.nio for most scenarios.