X-Git-Url: https://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Ftim%2Fprune%2Ffunction%2Fsrtm%2FSrtmSource.java;h=6e49ad18383060541e8378c854df365db86c0144;hb=860ae36b24e22ff49b23cc5e3b51e9bd5520712b;hp=44ceccfab52a13a5ced20108ad539cafbf2c6fb2;hpb=8f45a9f2289e01d4f6eee6036f7fc3c4a92e3024;p=GpsPrune.git diff --git a/src/tim/prune/function/srtm/SrtmSource.java b/src/tim/prune/function/srtm/SrtmSource.java index 44ceccf..6e49ad1 100644 --- a/src/tim/prune/function/srtm/SrtmSource.java +++ b/src/tim/prune/function/srtm/SrtmSource.java @@ -3,11 +3,13 @@ package tim.prune.function.srtm; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.InputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public abstract class SrtmSource { + // methods implemented by each source public abstract String getName(); public abstract boolean isReadyToUse(); public abstract boolean downloadTile(SrtmTile inTile) @@ -15,6 +17,24 @@ public abstract class SrtmSource { public abstract int getRowSize(SrtmTile inTile); protected abstract String getSourceExtension(); + protected boolean downloadToFile(InputStream inStream, File outputFile) + throws IOException + { + FileOutputStream outStream = new FileOutputStream(outputFile); + + byte[] buffer = new byte[4096]; + int read = 0; + while ((read = inStream.read(buffer)) != -1) + { + outStream.write(buffer, 0, read); + } + // Make sure streams are closed + try {inStream.close();} catch (Exception e) {} + try {outStream.close();} catch (Exception e) {} + return true; + + } + protected int[] slurpTileHeigths(ZipInputStream inStream, int tileSize) throws IOException {