Java-如何将512字节的文件发送到客户端(使用FileInputStream?)
我需要将数据包发送到客户机,并且我需要将它们作为512字节的块发送(最后一个数据包可以小于512字节)。 我的服务器文件夹中有一个文件,但我不确定如何读取512字节的文件块,以便将它们插入字节数组并发送到客户端。 我还需要记住上次停止的位置(文件中的当前字节位置),以便我知道从何处读取数据,以便生成下一个数据包 我找到了一个解决方案,但我认为它不好: FileInputStream fin=新的FileInputStream(“文件名”) 字节[]newPacketByteArray=新字节[512] fin.read(新包装比阵列) 现在主要的问题是,在客户端收到所有数据包之前,我不会关闭FileInputStream,这是因为当客户端回复他收到了我的第n个数据包时,我只发送下一个数据包,所以与此同时,FileInputStream一直保持打开状态,因为如果我关闭它,我将不知道如何到达最后一个字节的位置(我在fileInputStream API中没有看到任何可以访问特定位置的选项) 只有在客户告诉我他拿到了最后一包后,我才关闭它。 几个问题:Java-如何将512字节的文件发送到客户端(使用FileInputStream?),java,file,networking,fileinputstream,Java,File,Networking,Fileinputstream,我需要将数据包发送到客户机,并且我需要将它们作为512字节的块发送(最后一个数据包可以小于512字节)。 我的服务器文件夹中有一个文件,但我不确定如何读取512字节的文件块,以便将它们插入字节数组并发送到客户端。 我还需要记住上次停止的位置(文件中的当前字节位置),以便我知道从何处读取数据,以便生成下一个数据包 我找到了一个解决方案,但我认为它不好: FileInputStream fin=新的FileInputStream(“文件名”) 字节[]newPacketByteArray=新字节[5
非常感谢您的帮助为什么您需要自己管理数据包拆分和发送接收确认?您可以使用
Socket
API为您处理它。有关详细信息,请参阅。