0

序言:我了解 Apache IO,并且希望得到关于 Apache IO 指针之外的评论。


这可能是一个有点愚蠢的问题,但我刚刚意识到:

当我实现一个必须从输入流中读取的 API 时,我最终实现了很多重载的变体,例如:

public void foo ( InputStream input, int somearg, float someotherarg) { ...

重载变体:

public void foo ( File inputFile, int somearg, float someotherarg) { ...
public void foo ( String filename, int somearg, float someotherarg) { ...

- 或者 -

我可以实现

public void foo ( InputStream input, int somearg, float someotherarg) { ...

并实现处理文件名、文件并将它们转换为 InputStreams 的辅助实用程序函数。

我的问题是我一直在重新实现它——是否有人编写了一个库,或者它是否在设计模式中被处理过。

谢谢。

4

2 回答 2

2

番石榴有这个东西叫InputSupplier。也许你应该看看。

除此之外,Java 7 中有一个AutoCloseable接口和一个称为try-with-resources的功能,这可以简化您的情况(即您只能创建需要的 API 方法,InputStream程序员可以使用 try-with-resources 来处理这些输入当它们具有字符串/文件参数时流)。

于 2012-05-13T19:19:53.967 回答
0

您可能正在寻找 Apache Commons IO。它有很多方法可以减少这类事情的开销。

于 2012-05-13T17:34:24.947 回答