このコードを試してください -
import java.io.StringReader;
public class StringReaderTest
{
public static void main(String[] args) throws Exception
{
String sampleString = "abcdefg";
StringReader reader = new StringReader(sampleString);
for(int i=0; i<40; i++)
{
char c = (char) reader.read();
System.out.print(c);
}
}
}
出力は -
abcdefg?????????????????????????????????
したがって、読者は実際には入力の最後を過ぎて読みます。「g」を超えて読み取ろうとしたときに例外をスローするべきだったという印象を受けましたが、そうではありませんでした。代わりに「?」を返しました。キャラクター。これはバグですか、それとも予想される動作ですか?