我正在用java编写程序(已经在C中编写了一个版本).在读完之后,我真的需要将一个字符放回输入流.这可以通过ungetc()C/C++实现,我很想知道如何在Java中做同样的事情?
对于那些你不了解C/C++的人:
char myc = (char)System.in.read();
我检查myc的值,现在我想把myc放回去System.in!所以,当我打电话时System.in,我得到了那个价值.(但我怎么能这样做?)
注意:我正在寻找确切的技术.请不要建议我抓住它或将其记录在其他地方并从那里读取,因为我知道如何处理那些东西.ungetc()如果有的话,我感兴趣的是Java 中的等价物.
干杯.
您正在寻找PushbackInputStream
Java 的 IO 库的设计使原语非常基础,并且通过组合添加了附加功能。例如,如果您想缓冲来自文件的输入,您可以调用new BufferedInputStream(new FileInputStream("myfile.txt"));或者如果您想使用 UTF-8 编码从流中读取文本作为您调用的new InputStreamReader(new FileInputStream("myfile.txt"), "UTF-8");
所以你想要做的是创建一个 PushbackInputStream new PushbackInputStream(System.in);
这里需要注意的是,您实际上并没有将字节推回到标准输入上。一旦您从 System.in 读取它就消失了,并且没有其他访问 System.in 的代码能够获得该字节。您推回的任何内容都只能从您创建的用于处理数据的特定 PushbackInputStream 中获得。
| 归档时间: |
|
| 查看次数: |
1560 次 |
| 最近记录: |