@@ -16,11 +16,10 @@ void testPeeks() throws IOException {
1616
1717 final BufferedReader reader = new BufferedReader (new ByteArrayInputStream (bytes ));
1818
19- assertEquals ('H' , reader .read ());
20-
21- assertEquals ('l' , reader .peek (1 ));
22- assertEquals ('l' , reader .peek (2 ));
23- assertEquals ('o' , reader .peek (3 ));
19+ // Pointer at start: [H]
20+ assertEquals ('H' , reader .peek (1 ));
21+ assertEquals ('e' , reader .peek (2 ));
22+ assertEquals ('l' , reader .peek (3 ));
2423 }
2524
2625 @ Test
@@ -30,25 +29,28 @@ void testMixes() throws IOException {
3029
3130 final BufferedReader reader = new BufferedReader (new ByteArrayInputStream (bytes ));
3231
32+ // Read first character
3333 assertEquals ('H' , reader .read ());
3434
35- assertEquals ('l' , reader .peek (1 ));
35+ // Pointer now at 'e'
36+ assertEquals ('e' , reader .peek (1 ));
3637 assertEquals ('e' , reader .read ());
3738
38- assertEquals ('o' , reader .peek (2 ));
39- assertEquals ('!' , reader .peek (3 ));
40- assertEquals ('\n' , reader .peek (4 ));
39+ // Pointer at first 'l'
40+ assertEquals ('l' , reader .peek (1 ));
41+ assertEquals ('l' , reader .peek (2 ));
42+ assertEquals ('o' , reader .peek (3 ));
4143
4244 assertEquals ('l' , reader .read ());
4345 assertEquals ('o' , reader .peek (1 ));
4446
45- // Move towards EOF
46- for ( int i = 0 ; i < text . length (); i ++ ) {
47- reader . read ();
47+ // Move to EOF safely
48+ while ( reader . read () != - 1 ) {
49+ // consume remaining
4850 }
4951
50- // Proper exception testing
51- assertThrows (IOException .class , () -> reader .peek (4 ));
52+ // Exception when peeking beyond available
53+ assertThrows (IOException .class , () -> reader .peek (1 ));
5254 }
5355
5456 @ Test
@@ -58,11 +60,16 @@ void testBlockPractical() throws IOException {
5860
5961 final BufferedReader reader = new BufferedReader (new ByteArrayInputStream (bytes ));
6062
61- assertEquals ('H' , reader .peek ());
63+ // Peek before reading
64+ assertEquals ('!' , reader .peek ());
65+
66+ // Read first character
6267 assertEquals ('!' , reader .read ());
6368
69+ // Read next block (default buffer size = 5 → "Hello")
6470 assertEquals ("Hello" , new String (reader .readBlock ()));
6571
72+ // Continue reading
6673 if (reader .read () == '\n' ) {
6774 assertEquals ('W' , reader .read ());
6875 assertEquals ('o' , reader .read ());
0 commit comments