我正在用Java解决一些问题,我遇到了以下问题:“输入的总大小不超过300 KB”,“输入的总大小不超过256 KB”

我的疑问是如何确保我的输入小于该值。

我实际上尝试使用

CountingInputStream (CountingInputStream input = new CountingInputStream(System.in);)


验证它。这是Google的外部jar文件。

但是当我在在线编译器中提交我的解决方案时,编译器不使用CountingInputStream。所以我怎么不使用这个呢?

CountingInputStream input = new CountingInputStream(System.in);
System.out.println("Enter Values: ");

while (scanner.hasNext() && input.getCount() < (256 * 1024))


现在我正在做...但是有一种方法可以控制我的输入而无需使用CountingInputStream。请帮助

最佳答案

编写自己的类来装饰InputStream,重写read方法以计数字节,然后在字节数超过某个阈值时引发异常。您的驱动程序可能如下所示:

InputStream in = new ByteLimiterInputStream(new FileInputStream("file.bin"));

while(...)
   in.read();


当您读取太多数据时,这将引发异常。编写ByteLimiterInputStream类由您决定。毕竟,这是一项学术练习:锻炼自己的大脑,不要问别人答案。

10-06 06:52