我想读取一个文件,然后使用java.nio写入并将其返回给servlet.i也想检查文件是否已经下载或者没有.plz建议。
答案 0 :(得分:1)
如果你要阻止线程,java.nio是非常复杂的。
使用基于流的io服务并创建一个带有输入流和输出流的copyStream方法,你会好得多。
如果您正在谈论客户端应用程序,并且您想将数据发送到servlet,那么只需创建一个新线程来进行流复制,如果您正在讨论Servlet应用程序,并且您想要要将此文件返回给客户端,那么您已经在运行一个单独的线程,您可以直接启动copyStream方法将文件复制到ServletOutputStream。
至于确定文件是否已下载,您只能做出最佳猜测。例如,如果在复制流时遇到任何错误,那么您可以安全地假设文件失败,但如果您没有遇到任何错误,那么您实际上并不知道它是否成功完成。在所有可能的引擎盖中它确实如此,但你无法确定。