java中ungetc的等价物

java中ungetc的等价物,java,Java,我正在用java编写一个程序(已经用C编写了一个版本)。我真的需要把一个字符放回输入流后,我读它。这可以通过C/C++中的ungetc()来实现,我想知道如何在Java中做同样的事情 对于那些不懂C/C++的人: char myc=(char)System.in.read() 我检查了myc的值,现在我想把myc放回系统中!所以当我再次调用System.in时,我得到了那个值。(但我该怎么做呢?) 注意:我正在寻找精确的技术。请不要建议我去捕捉它或在其他地方记录它,然后从那里开始阅读,因为我知道

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

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

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


干杯。

如果输入流支持标记,您可以使用和方法实现您想要的

您可以将
系统.in
包装到a或a中以获得标记支持。

您正在寻找的

Java的IO库的设计使原语非常基本,并通过组合添加了额外的功能。例如,如果您想缓冲来自文件的输入,您可以调用
newbufferedInputStream(newfileInputStream(“myfile.txt”)
或者,如果您想使用UTF-8编码从流中读取文本,您可以调用
newInputStreamReader(newFileInputStream(“myfile.txt”),“UTF-8”)

因此,您要做的是使用
newpushbackinputstream(System.in)创建一个PushbackInputStream

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

“java myapp