From: <pat...@us...> - 2010-10-28 22:15:17
|
Revision: 1145 http://cishell.svn.sourceforge.net/cishell/?rev=1145&view=rev Author: pataphil Date: 2010-10-28 22:15:11 +0000 (Thu, 28 Oct 2010) Log Message: ----------- * Implemented FileUtilities.writeEntireStreamToTemporaryFileInDirectory * Fixed a small bug in ensureDirectoryExists * Reviewed by Joseph. Modified Paths: -------------- trunk/core/org.cishell.utilities/src/org/cishell/utilities/FileUtilities.java Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/FileUtilities.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/FileUtilities.java 2010-10-22 18:08:52 UTC (rev 1144) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/FileUtilities.java 2010-10-28 22:15:11 UTC (rev 1145) @@ -33,12 +33,13 @@ * temporaryDirectoryPath, creating the directory if it doesn't * already exist. */ - private static File createTemporaryDirectory( - String temporaryDirectoryPath) { - return ensureDirectoryExists( - temporaryDirectoryPath + File.separator + "temp"); + public static File createTemporaryDirectory(String temporaryDirectoryPath) { + String fullDirectoryPath = + String.format("%s%stemp", temporaryDirectoryPath, File.separator); + + return ensureDirectoryExists(fullDirectoryPath); } - + // Attempt to create a temporary file on disk whose name is passed in. public static File createTemporaryFile(File temporaryDirectory, String temporaryDirectoryPath, @@ -282,6 +283,27 @@ return temporaryFile; } + + public static File writeEntireStreamToTemporaryFileInDirectory( + InputStream input, File directory, String fileName, String fileExtension) + throws IOException { + File temporaryFile = + createTemporaryFile(directory, directory.getAbsolutePath(), fileName, fileExtension); + OutputStream output = new FileOutputStream(temporaryFile); + // TODO: Use READ_TEXT_FILE_BUFFER_SIZE. + byte[] readCharacters = new byte[1]; + int readCharacterCount = input.read(readCharacters); + + while (readCharacterCount > 0) { + output.write(readCharacters, 0, readCharacterCount); + readCharacterCount = input.read(readCharacters); + } + + output.close(); + input.close(); + + return temporaryFile; + } public static String getFileExtension(File file) { return getFileExtension(file.getAbsolutePath()); @@ -301,14 +323,14 @@ File directory = new File(directoryPath); if (!directory.exists()) { - directory.mkdir(); + directory.mkdirs(); directory.deleteOnExit(); } return directory; } -public static final char FILENAME_CHARACTER_REPLACEMENT = '#'; + public static final char FILENAME_CHARACTER_REPLACEMENT = '#'; /* Attempt to enumerate characters which cannot be used to name a file. * For our purposes, this should be as aggressive as sensible. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |