我正在为服务的客户端设计API,该服务以字节流的形式检索数据。 使用
有什么好处InputStream getData(String param1, String param2);
在
byte[] getData(String param1, String param2);
返回输入流的方法困扰我,因为
设计这个的最佳方法是什么?我甚至考虑过使用
void writeData(String param, String param, OutputStream os);
但这会使方法名称不直观。
答案 0 :(得分:5)
byte []有两个可能的缺点:
使用Stream可以解决这些问题。这取决于您返回的数据以及您希望用户使用它做什么。
答案 1 :(得分:3)
我会返回类似Guava InputSupplier<InputStream>
的内容,它可以让您请求多个不同的输入流。
此外,Guava提供了许多方法,它们采用InputSupplier<InputStream>
,打开输入流,执行一些全流操作,然后关闭它而不会让你记住关闭输入流或其他什么。
即使您不想直接使用Guava,这也是一种很好的技术,可以让客户端程序决定如何处理它。