X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Ftim%2Fprune%2Ffunction%2Fsrtm%2FSrtmSource.java;fp=src%2Ftim%2Fprune%2Ffunction%2Fsrtm%2FSrtmSource.java;h=6e49ad18383060541e8378c854df365db86c0144;hb=ee3eef52c05b36837d56bd4db582783da0ba0df4;hp=44ceccfab52a13a5ced20108ad539cafbf2c6fb2;hpb=842bb718cc05d82d37cf6464175baa9f05c80297;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 {