From: <ka...@us...> - 2011-03-10 21:49:08
|
Revision: 3496 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3496&view=rev Author: kappa1 Date: 2011-03-10 21:49:01 +0000 (Thu, 10 Mar 2011) Log Message: ----------- AppletLoader: clean up and simplify code relating to reading and writing cache/version files. Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2011-03-07 22:22:08 UTC (rev 3495) +++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2011-03-10 21:49:01 UTC (rev 3496) @@ -41,8 +41,6 @@ import java.awt.Image; import java.awt.MediaTracker; import java.awt.image.ImageObserver; -import java.io.DataInputStream; -import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -745,7 +743,7 @@ // if version file exists if (versionFile.exists()) { // compare to new version - if (latestVersion != readVersionFile(versionFile)) { + if (latestVersion != readFloatFile(versionFile)) { versionAvailable = true; percentage = 90; @@ -774,11 +772,11 @@ // save version information once jars downloaded successfully if (version != null) { percentage = 90; - writeVersionFile(versionFile, latestVersion); + writeObjectFile(versionFile, latestVersion); } // save file names with last modified info once downloaded successfully - writeCacheFile(new File(dir, "cache"), filesLastModified); + writeObjectFile(new File(dir, "timestamps"), filesLastModified); } // add the downloaded jars and natives to classpath @@ -850,83 +848,81 @@ } /** - * read the current version file + * read float from File * - * @param file the file to read - * @return the version value of saved file - * @throws Exception if it fails to read value + * @param file to be read + * @return the float stored in the file or 0 if it fails */ - protected float readVersionFile(File file) throws Exception { - FileInputStream fis = new FileInputStream(file); + protected float readFloatFile(File file) { try { - DataInputStream dis = new DataInputStream(fis); - float version = dis.readFloat(); - dis.close(); - return version; + Float version = (Float)readObjectFile(file); + return version.floatValue(); } catch (Exception e) { // failed to read version file e.printStackTrace(); } - finally { - fis.close(); - } // return 0 if failed to read file return 0; } - + /** - * write out version file of applet + * read the HashMap from File * - * @param file the file to write out to - * @param version the version of the applet as a float - * @throws Exception if it fails to write file + * @param file the file to read + * @return the hashmap stored in the file or an empty hashmap if it fails */ - protected void writeVersionFile(File file, float version) throws Exception { - FileOutputStream fos = new FileOutputStream(file); - DataOutputStream dos = new DataOutputStream(fos); - dos.writeFloat(version); - dos.close(); - fos.close(); + @SuppressWarnings("unchecked") + protected HashMap<String, Long> readHashMapFile(File file) { + + try { + return (HashMap<String, Long>) readObjectFile(file); + } catch (Exception e) { + // failed to read hashmap from file + e.printStackTrace(); + } + + // return an empty map if failed to read file + return new HashMap<String, Long>(); } - + /** - * read the current cache file - * + * read the object from the File + * * @param file the file to read - * @return the hashmap containing the files names and lastModified times - * @throws Exception if it fails to read hashmap + * @return the object contained in the file or null if it fails + * @throws Exception if it fails to read object from file */ - @SuppressWarnings("unchecked") - protected HashMap<String, Long> readCacheFile(File file) throws Exception { + protected Object readObjectFile(File file) throws Exception { FileInputStream fis = new FileInputStream(file); + try { ObjectInputStream dis = new ObjectInputStream(fis); - HashMap<String, Long> hashMap = (HashMap<String, Long>) dis.readObject(); + Object object = dis.readObject(); dis.close(); - return hashMap; + return object; } catch (Exception e) { - // failed to read cache file + // failed to read file e.printStackTrace(); } finally { fis.close(); } - // return an empty map if failed to read file - return new HashMap<String, Long>(); + // return null if failed to read file + return null; } - + /** - * write out cache file of applet + * write object to specified File * * @param file the file to write out to - * @param filesLastModified the hashmap containing files names and lastModified times + * @param object the contents of the file * @throws Exception if it fails to write file */ - protected void writeCacheFile(File file, HashMap<String, Long> filesLastModified) throws Exception { + protected void writeObjectFile(File file, Object object) throws Exception { FileOutputStream fos = new FileOutputStream(file); ObjectOutputStream dos = new ObjectOutputStream(fos); - dos.writeObject(filesLastModified); + dos.writeObject(object); dos.close(); fos.close(); } @@ -1103,11 +1099,11 @@ URLConnection urlconnection; - File cacheFile = new File(dir, "cache"); + File timestampsFile = new File(dir, "timestamps"); - // if cache file exists, load it - if (cacheFile.exists()) { - filesLastModified = readCacheFile(cacheFile); + // if timestamps file exists, load it + if (timestampsFile.exists()) { + filesLastModified = readHashMapFile(timestampsFile); } // calculate total size of jars to download This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |