66import java .io .BufferedInputStream ;
77import java .io .IOException ;
88import java .io .InputStream ;
9+ import java .net .MalformedURLException ;
10+ import java .net .URI ;
911import java .net .URL ;
1012import java .nio .charset .Charset ;
1113import java .util .Iterator ;
@@ -15,6 +17,14 @@ public class WarcRecordIteratorFactory {
1517
1618 private static final int ONE_MEGABYTE_IN_BYTE = 1048576 ;
1719
20+ public static <T extends WarcContentBlock > Iterator <WarcRecord <T >> iteratorOf (final URI uri ) {
21+ try {
22+ return iteratorOf (uri .toURL ());
23+ } catch (MalformedURLException e ) {
24+ throw new WarcNetworkException ("Unable to parse WARC location: " + uri + "!" , e );
25+ }
26+ }
27+
1828 public static <T extends WarcContentBlock > Iterator <WarcRecord <T >> iteratorOf (final URL url ) {
1929 try {
2030 return iteratorOf (new AvailableInputStream (new BufferedInputStream (url .openStream (), ONE_MEGABYTE_IN_BYTE )),
@@ -33,7 +43,7 @@ public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(fi
3343 }
3444
3545 public static <T extends WarcContentBlock > Iterator <WarcRecord <T >> iteratorOf (final InputStream inputStream , final Charset charset ,
36- final boolean compressed ) {
46+ final boolean compressed ) {
3747 final WarcReader warcReader = new WarcReader (inputStream , charset , compressed );
3848
3949 return (Iterator <WarcRecord <T >>) new WarcRecordIterator (warcReader );
0 commit comments