gpt4 book ai didi

java - 如何从InputStream读取字符并将其返回到Supplier (Java)

转载 作者:行者123 更新时间:2023-12-01 18:15:39 25 4
gpt4 key购买 nike

所以我有一个需要实现的方法。它获取一个输入流并返回一个供应商,如下所示:

public Supplier<Integer> buildPipe(InputStream input)

现在我想从 InputStream 中读取一个字符(可能使用 read() 方法)并将其返回,但我不知道如何将其存储为 int,以便我可以将其返回给供应商。

希望有人能帮助我。

最佳答案

不通过解码桥直接从InputStreamcodepoint 是不可能的。为此,您需要知道Charset,或者假设它。 InputStreamReader 就是那个桥梁。

例如:

InputStream is = new ByteArrayInputStream(new byte[]{1,2});
InputStreamReader reader = new InputStreamReader(is, StandardCharsets.UTF_8);

现在您可以从阅读器而不是输入流获取供应商。

Supplier<Integer> next(InputStreamReader reader) {
Supplier<Integer> s = () -> {
try {
return reader.read();
} catch (IOException e) {
throw new RuntimeException(e);
}
};
return s;
}

请注意,InputStreamReader 是有状态的,因此您的Supplier 不会像人们所期望的那样是引用透明的。

关于java - 如何从InputStream读取字符并将其返回到Supplier<Integer> (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60375442/

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