CeosFileReader { public String readAn(final int n) throws IOException, IllegalCeosFormatException { final long streamPosition = stream.getStreamPosition(); final byte[] bytes = new byte[n]; final int bytesRead; try { bytesRead = stream.read(bytes); } catch (IOException e) { final String message = String.format(CeosFileReader.EM_READING_X_TYPE, "An"); throw new IllegalCeosFormatException(message, streamPosition, e); } if (bytesRead != n) { final String message = String.format(CeosFileReader.EM_EXPECTED_X_FOUND_Y_BYTES, n, bytesRead); throw new IllegalCeosFormatException(message, streamPosition); } return new String(bytes); } CeosFileReader(final ImageInputStream stream); void close(); void seek(final long pos); void skipBytes(final long numBytes); int readB1(); short readB2(); int readB4(); long readB8(); void readB4(final int[] array); void readB8(final long[] array); int readI4(); long readIn(final int n); void readB1(final byte[] array); double readFn(final int n); double readEn(final int n); double readGn(final int n); void readGn(final int n, final double[] numbers); String readAn(final int n); int[] readInArray(final int arraySize, final int intValLength); long getCurrentPos();  }
@Test public void testReadAn() throws IllegalCeosFormatException, IOException { final String expected = "Kinkerlitzchen"; _ios.writeBytes(expected); _ios.seek(0); final CeosFileReader ceosReader = new CeosFileReader(_ios); assertEquals(expected, ceosReader.readAn(expected.length())); }