|
From: <pat...@us...> - 2009-11-24 20:05:53
|
Revision: 984
http://cishell.svn.sourceforge.net/cishell/?rev=984&view=rev
Author: pataphil
Date: 2009-11-24 20:05:47 +0000 (Tue, 24 Nov 2009)
Log Message:
-----------
Committing Patrick's in-progress work, because he's sick and we need to continue with this (Micah).
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 2009-11-23 20:59:28 UTC (rev 983)
+++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/FileUtilities.java 2009-11-24 20:05:47 UTC (rev 984)
@@ -11,6 +11,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.io.OutputStream;
import java.net.URI;
import java.net.URL;
import java.nio.channels.FileChannel;
@@ -19,6 +20,7 @@
public class FileUtilities {
public static final int READ_TEXT_FILE_BUFFER_SIZE = 1024;
+ public static final String DEFAULT_STREAM_TO_FILE_NAME = "stream_";
/*
* Return a File pointing to the directory specified in
@@ -173,6 +175,7 @@
*/
public static String extractReaderContents(BufferedReader bufferedReader) throws IOException {
StringBuffer contents = new StringBuffer();
+ // TODO: Use READ_TEXT_FILE_BUFFER_SIZE as the size instead of 1?
char[] readInCharacters = new char[1];
int readCharacterCount = bufferedReader.read(readInCharacters);
@@ -241,6 +244,53 @@
return new File(URI.create(fileURL.toString()));
}
+ public static File safeLoadFileFromClasspath(Class clazz, String filePath) throws IOException {
+ InputStream input = clazz.getResourceAsStream(filePath);
+ String fileExtension = getFileExtension(filePath);
+
+ return writeEntireStreamToTemporaryFile(input, fileExtension);
+ }
+
+ public static File writeEntireStreamToTemporaryFile(InputStream stream, String fileExtension)
+ throws IOException {
+ return writeEntireStreamToTemporaryFile(
+ stream, DEFAULT_STREAM_TO_FILE_NAME, fileExtension);
+ }
+
+ public static File writeEntireStreamToTemporaryFile(
+ InputStream input, String fileName, String fileExtension) throws IOException {
+ File temporaryFile =
+ createTemporaryFileInDefaultTemporaryDirectory(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());
+ }
+
+ public static String getFileExtension(String filePath) {
+ int periodPosition = filePath.lastIndexOf(".");
+
+ if ((periodPosition != -1) && ((periodPosition + 1) < filePath.length())) {
+ return filePath.substring(periodPosition);
+ } else {
+ return "";
+ }
+ }
+
private static File ensureDirectoryExists(String directoryPath) {
File directory = new File(directoryPath);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|