gpt4 book ai didi

java - 我怎么知道 BufferedReader 是否与 DataInputStream 链接在一起?

转载 作者:行者123 更新时间:2023-11-29 03:45:05 27 4
gpt4 key购买 nike

在一个方法中,我需要一个 BufferedReader 包装一个 DataInputStream 作为参数。我想将方法​​声明为:

public void firstPass(BufferedReader inStream){ // some code ... }

但我不知道如何检查 inStream 是否包装了 DataInputStream。

我试过了

public static void firstPass(BufferedReader inStream){
if (inStream instanceof DataInputStream){

}
}

但代码无法编译(Eclispe 不接受代码:“不兼容的条件操作数类型 BufferedReader 和 DataInputStream”)。


为什么需要这个?因为我想在 inStream 中使用相同的变量:

  • BufferedReader 的 readLine() 方法
  • DataInputStream 的 readDouble() 方法

所以我需要一个链接这两个类的流。

我正在使用 Java 7 JDK 进行编程。

有人可以帮我吗?提前致谢。

最佳答案

DataInputStream 永远不能是 BufferedReader 的实例 - 它们都在不同的类层次结构中。

BufferedReader 包装另一个 Reader,而不是 Stream。

您可以使用 InputStreamReader 从 Streams 桥接至 Readers .

从同一个 Reader 读取 double 和 lines 并没有真正意义 - 一个是原始二进制数据,另一个是字符数据。也许您需要读取 double 的文本编码,并使用 Double.parseDouble(text) 对其进行解析。

关于java - 我怎么知道 BufferedReader 是否与 DataInputStream 链接在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11351719/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com