gpt4 book ai didi

java - 相当于java中的ungetc

转载 作者:搜寻专家 更新时间:2023-10-31 19:50:56 26 4
gpt4 key购买 nike

我正在用 Java 编写一个程序(也已经用 C 编写了一个版本)。我真的需要在阅读后将一个字符放回输入流。这可以通过 C/C++ 中的 ungetc() 来完成,我想知道如何在 Java 中做同样的事情?

对于那些不了解 C/C++ 的人:char myc = (char)System.in.read();我检查了 myc 的值,现在我想将 myc 放回 System.in!所以当我再次调用 System.in 时,我得到了那个值。 (但是我该怎么做呢?)

注意:我正在寻找精确的技术。请不要建议我捕捉它或将其记录在其他地方并从那里阅读,因为我知道如何处理这些东西。如果有的话,我感兴趣的是等同于 Java 中的 ungetc()

干杯。

最佳答案

您正在寻找PushbackInputStream

Java 的 IO 库的设计原语是非常基本的,额外的功能是通过组合添加的。例如,如果你想缓冲来自文件的输入,你可以调用 new BufferedInputStream(new FileInputStream("myfile.txt")); 或者如果你想使用 UTF 从流中读取文本-8 编码你会调用 new InputStreamReader(new FileInputStream("myfile.txt"), "UTF-8");

因此,您要做的是使用 new PushbackInputStream(System.in);

创建一个 PushbackInputStream

这里需要注意的是,您实际上并没有将字节推回标准输入。一旦您从 System.in 中读取它就消失了,并且没有其他访问 System.in 的代码将能够获取该字节。您推回的任何内容都只能从您创建的用于处理数据的特定 PushbackInputStream 中获得。

关于java - 相当于java中的ungetc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2205308/

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