java - Java 中的自动文件/输入流处理

标签 java inputstream

序言:我了解 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) { ...

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

我的问题是我不断重新实现这个 - 是否有人编写了一个库,或者是否已在设计模式中对其进行了处理。

谢谢。

最佳答案

Guava有一个叫做InputSupplier的东西。也许你应该看一下。

除此之外,还有一个AutoCloseable界面和一个名为 try-with-resources 的功能在 Java 7 中,这可能会简化您的情况(即您只能创建需要 InputStream 的 API 方法,并且程序员可以使用 try-with-resources 来处理那些具有字符串/文件参数的输入流)。

关于java - Java 中的自动文件/输入流处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10573759/

相关文章:

java - 如何获取输入流的 crc 并返回其克隆是

java - 如何通过runTime.exec()使用涉及 ">"的linux命令

java - 当图片较大时,带有 JPanel 的 JScrollPane 不显示滚动条

Java程序组织: How can I get rid of this massive case statement?

java - 如何获得列表的非包含子集?

android - 如何在android中拆分InputStream/OutPutStream

java - InputStream 的 "close()"方法抛出 NullPointerException

Java 小程序静态类

java - 此日期的时间格式字符串是什么 : Sat, 26 Jul 2014 11:55:55 GMT

java - 如何从使用 Runtime.getRuntime().exec(cmdLine) 执行的 Java 程序中的 netcat 监听器子进程获取 std 输出?