输入不应超过 xxx KB

Input shouldnt exceed xxx KB

我正在解决 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() 方法,并递增计数器。

read() 将 return 一个字节,或流末尾的 -1。

例如

int MAX = 256 * 1024;
int count = 0;

while (true) {

  int return = is.read();
  if (return == -1) break;

  if (++count >= MAX) {
    // maximum limit reached
  } else {
    // store the byte somewhere, do something with it...
  }

}

编写自己的 class 装饰 InputStream,覆盖 read 方法来计算字节数,然后在字节数超过某个阈值时抛出异常。您的驱动程序可能如下所示:

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

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

这会在您读取过多数据时抛出异常。 ByteLimiterInputStream class 由你来写。这毕竟是学术练习:锻炼自己的大脑,不要问别人答案。