TextDetector implements Detector { public MediaType detect(InputStream input, Metadata metadata) throws IOException { if (input == null) { return MediaType.OCTET_STREAM; } input.mark(bytesToTest); try { TextStatistics stats = new TextStatistics(); byte[] buffer = new byte[1024]; int n = 0; int m = input.read(buffer, 0, Math.min(bytesToTest, buffer.length)); while (m != -1 && n < bytesToTest) { stats.addData(buffer, 0, m); n += m; m = input.read(buffer, 0, Math.min(bytesToTest - n, buffer.length)); } if (stats.isMostlyAscii() || stats.looksLikeUTF8()) { return MediaType.TEXT_PLAIN; } else { return MediaType.OCTET_STREAM; } } finally { input.reset(); } } TextDetector();  TextDetector(int bytesToTest); MediaType detect(InputStream input, Metadata metadata);  }
@Test public void testDetectNull() throws Exception { assertEquals( MediaType.OCTET_STREAM, detector.detect(null, new Metadata())); }