Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法在一段时间内忽略传入的InputStream数据?_Java_Android_Inputstream - Fatal编程技术网

Java 有没有办法在一段时间内忽略传入的InputStream数据?

Java 有没有办法在一段时间内忽略传入的InputStream数据?,java,android,inputstream,Java,Android,Inputstream,我有一个问题: 我以为我能通过提供的答案解决它,但我没有 我正在向红外接收器发送一个红外信号,该信号通过BT模块传输到Android应用程序的输入流。每次按下发射器上的按钮,我都会发送100个字节,然后我希望这些字节进入InputStream 有没有办法在我收到一个数据包3秒钟后忽略所有传入的字节?即使它们到达了,我想跳过它们,只是不把它们放进缓冲区。但在这3秒钟之后,我想再次收听传入的InputStream字节流 我需要它,因为有时会有一些来自IR发射器的虚拟字节,或者当用户不小心按下按钮两次

我有一个问题:

我以为我能通过提供的答案解决它,但我没有

我正在向红外接收器发送一个红外信号,该信号通过BT模块传输到Android应用程序的输入流。每次按下发射器上的按钮,我都会发送100个字节,然后我希望这些字节进入InputStream

有没有办法在我收到一个数据包3秒钟后忽略所有传入的字节?即使它们到达了,我想跳过它们,只是不把它们放进缓冲区。但在这3秒钟之后,我想再次收听传入的
InputStream
字节流

我需要它,因为有时会有一些来自IR发射器的虚拟字节,或者当用户不小心按下按钮两次时(我不希望数据发送两次)。我只是想要3秒钟的“冷却”

我的
读取功能:

public int read(final InputStream input, final byte[] buffer) throws IOException {
            int remaining = buffer.length;
           while (remaining > 20) {
                final int location = buffer.length - remaining;
                final int count = input.read(buffer, location, remaining);
                if (count == -1) { // EOF
                    break;
                }
                remaining -= count;
            }
            return buffer.length - remaining;
        }

我可以使用
跳过(长n)
功能吗?由于我不知道要跳过多少字节,我可以定义任何数字吗?我只想跳过这3秒钟内的所有动作

跳跃法是一种阻塞法;一旦调用它,流经拖缆的下一个数据将丢失且无法恢复,因此如果在预期字节之前没有显示任何内容,则可能会丢失数据。你可以设置一个定时器线程睡眠3秒;当它醒来时,您可能会让它将一个静态布尔值更改为IR listener类,因此当read()方法成功地从拖缆检索数据时,您可以决定是保留它还是忽略它