java - 输入流或读取器。具有相同逻辑的方法

标签 java io inputstream filereader

我需要实现相同的逻辑:使用InputStream比较文件以二进制形式进行比较,使用Reader以unicode形式进行比较。 我可以以某种方式创建一个采用 InputStreamReader 的方法,并与所采用参数的 read() 方法执行相同的逻辑。

找不到适合这种情况的通配符,因为据我所知,InputStreamReader 没有交互的层次结构。

我需要一个采用 BufferedInputStreamBufferedReader 的方法。

最佳答案

您可以使用重载创建两个方法,这意味着每个方法都采用您想要支持的输入之一。

定义一个接口(interface),其中包含您需要从两个方法访问的功能,然后编写实现该接口(interface)的包装类(这些可以是相应方法中的匿名内部类)。

将包装的输入传递给在接口(interface)上工作的内部私有(private)处理方法,并且不关心它可能包装的内容。

只需为每个对象添加一个新方法和一个新包装器,就可以扩展它以支持任意数量的不同类型的传入对象(只要可以包装它们)。

关于java - 输入流或读取器。具有相同逻辑的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33875393/

相关文章:

java - 从URL读取InputStream并通过Servlet写入

java - IOUtils.toString(InputStream) 的 Guava 等价物

java - 我的配置有什么问题?严重 : IOException while loading persisted sessions: java. io.EOFException

c - fstat() 没有读取正确的文件大小

java - 在 Java 中解析一个无限长的输入

java - 文件输入流奇怪的行为

c++ - 将 stdout/stderr 重定向到 unix c++ 下的文件 - 再次

java - 关于 Bitmap 以不同方式转换为 ByteArray 的困惑

java - Android:TextView.setText() 的结果被 fragment 覆盖

java - 在 Android 上移动 ImageView