gpt4 book ai didi

java - FilterInputStream 不执行

转载 作者:行者123 更新时间:2023-11-29 03:45:04 26 4
gpt4 key购买 nike

我正在尝试使用 FilterInputStream,但无法使其正常工作。如果我对 FilterReader 进行编程,一切顺利:

import java.io.*;

class Filter extends FilterReader {
Filter(Reader in) {
super(in);
}

public int read() throws IOException {
return 'A';
}
}

public class TestFilter {
public static void main(String[] args) throws IOException {
Reader in = new Filter(new InputStreamReader(System.in));
System.out.println((char)in.read());
}
}

执行是A

但如果我使用 FiterInputStream,执行会阻止读取:

import java.io.*;

class Filter extends FilterInputStream {
Filter(InputStream in) {
super(in);
}

public int read() throws IOException {
return 'A';
}
}

public class TestFilter {
public static void main(String[] args) throws IOException {
Reader in = new InputStreamReader(new Filter(System.in));
System.out.println((char)in.read());
}
}

最佳答案

在第一个代码中,您的阅读器是:

new Filter(new InputStreamReader(System.in));

它的 read 方法是您重写的方法:

public int read() throws IOException {
return 'A';
}

在第二个代码中,您的阅读器是:

new InputStreamReader(new Filter(System.in));

并且未使用过滤器的 read 方法。 Reader 而是等待 System.in,因此您必须输入内容 (+ ENTER) 才能读取内容。

关于java - FilterInputStream 不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11362933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com