uk.ac.leeds.ccg.andyt.generic.io
Class Generic_StaticIO

java.lang.Object
  extended by uk.ac.leeds.ccg.andyt.generic.io.Generic_StaticIO

public class Generic_StaticIO
extends java.lang.Object

Class of static methods for helping with reading and writing (primarily) to/from file.


Field Summary
static java.lang.String CLASSNAME
           
 
Constructor Summary
Generic_StaticIO()
          Creates a new instance of ObjectIO
 
Method Summary
static java.io.File addToArchive(java.io.File directory0, long range)
           
static java.io.File addToArchive(java.io.File directory0, long range, long next_ID)
           
static void copy(java.io.File a_FileOrDirectoryToCopy_File, java.io.File a_DirectoryToCopyInto_File)
           
static void copyDirectory(java.io.File a_DirectoryToCopy_File, java.io.File a_DirectoryToCopyInto_File)
           
static void copyFile(java.io.File input_File, java.io.File outputDirectory_File)
           
static void copyFile(java.io.File input_File, java.io.File outputDirectory_File, java.lang.String outputFileName)
           
static java.io.File createNewFile()
           
static java.io.File createNewFile(java.io.File parentDirectory)
           
static java.io.File createNewFile(java.io.File parentDirectory, java.lang.String filename)
          Returns a newly created File which is a _InputFile if the filename.
static java.io.File createNewFile(java.io.File parentDirectory, java.lang.String prefix, java.lang.String suffix)
           
static java.io.File createTempFile()
          Returns a newly created temporary _InputFile.
static java.io.File createTempFile(java.io.File parentDirectory)
          Returns a newly created temporary _InputFile.
static java.io.File createTempFile(java.io.File parentDirectory, java.lang.String prefix, java.lang.String suffix)
          Returns a newly created temporary _InputFile.
static long[] delete(java.io.File file)
          Attempts to delete file from the file system.
static boolean fileExistsAndCanBeRead(java.io.File file)
           
static java.lang.Long getArchiveHighestLeaf(java.io.File directory, java.lang.String underscore)
           
static java.io.File getArchiveHighestLeafFile(java.io.File directory, java.lang.String underscore)
           
static java.util.TreeMap<java.lang.Long,java.io.File> getArchiveLeafFiles_TreeMap(java.io.File directory, java.lang.String underscore)
           
static java.util.TreeMap<java.lang.Long,java.io.File> getArchiveLeafFiles_TreeMap(java.io.File directory, java.lang.String underscore, long minID, long maxID)
           
static java.util.HashSet<java.io.File> getArchiveLeafFiles(java.io.File directory, java.lang.String underscore)
          For returning all the leaf file elements in a branch of an archive as a HashSet<File>.
static long getArchiveRange(java.io.File directory, java.lang.String underscore)
           
static java.io.BufferedReader getBufferedReader(java.io.File file)
           
static java.lang.String getFilename(java.io.File directory, java.io.File a_File)
           
static java.io.File getFileThatExists(java.io.File directory, java.lang.String filename)
           
static java.util.HashMap<java.lang.Integer,java.lang.String> getNumericalAndNumericalUnderscoreFilenames_HashMap(java.io.File directory, java.lang.String underscore)
           
static java.util.TreeMap<java.lang.Long,java.io.File> getNumericalOrderFilesWithNumericalFilenames_TreeMap(java.io.File[] files)
          getNumericalOrderFilesWithNumericalFilenames_TreeMap( File[] files) { TreeMap<Long, File> result = new TreeMap<Long, File>(); for (int i = 0; i < files.length; i++) { result.put( new Long(files[i].getName()), files[i]); } return result; }
static java.util.TreeMap<java.lang.Long,java.io.File> getNumericalOrderFilesWithNumericalUnderscoreFilenames_TreeMap(java.io.File[] files, java.lang.String underscore)
          If needed to order also by a number after the underscore then a new method is needed.
static java.io.File getObjectDirectory(java.io.File directory, long a_ID, long max_ID, long range)
           
static java.io.File growArchiveBase(java.io.File directory, long range)
           
static java.io.File growArchiveBase(java.io.File directory, long range, long next_ID)
           
static java.io.File initialiseArchive(java.io.File directory, long range)
          Initialises a directory in directory and returns result.
static void initialiseArchive(java.io.File directory, long range, long maxID)
          Initialises an Archive directory structure.
static java.util.TreeMap<java.lang.Long,java.io.File> initialiseArchiveReturnTreeMapLongFile(java.io.File directory, long range, long maxID)
          Initialises an Archive directory structure and returns a TreeMap of the Files in the Archive with numerical keys from 0 to maxID.
static java.lang.Object readObject(java.io.File file)
          Read Object from File
static java.util.TreeSet<java.lang.String> recursiveFileList(java.io.File file)
           
static java.util.TreeSet<java.lang.String> recursiveFileList(java.io.File file, int depth)
           
static void setStreamTokenizerSyntax1(java.io.StreamTokenizer aStreamTokenizer)
          Sets the syntax of aStreamTokenizer as follows: aStreamTokenizer.resetSyntax(); aStreamTokenizer.wordChars( ',', ',' ); aStreamTokenizer.wordChars( '"', '"' ); aStreamTokenizer.wordChars( '0', '0' ); aStreamTokenizer.wordChars( '1', '1' ); aStreamTokenizer.wordChars( '2', '2' ); aStreamTokenizer.wordChars( '3', '3' ); aStreamTokenizer.wordChars( '4', '4' ); aStreamTokenizer.wordChars( '5', '5' ); aStreamTokenizer.wordChars( '6', '6' ); aStreamTokenizer.wordChars( '7', '7' ); aStreamTokenizer.wordChars( '8', '8' ); aStreamTokenizer.wordChars( '9', '9' ); aStreamTokenizer.wordChars( '.', '.' ); aStreamTokenizer.wordChars( '-', '-' ); aStreamTokenizer.wordChars( '+', '+' ); aStreamTokenizer.wordChars( 'a', 'z' ); aStreamTokenizer.wordChars( 'A', 'Z' ); aStreamTokenizer.wordChars( '\t', '\t' ); aStreamTokenizer.wordChars( ' ', ' ' ); aStreamTokenizer.eolIsSignificant( true );
static void setStreamTokenizerSyntax2(java.io.StreamTokenizer aStreamTokenizer)
          Sets the syntax of aStreamTokenizer as follows: aStreamTokenizer.resetSyntax(); aStreamTokenizer.wordChars( '"', '"' ); aStreamTokenizer.wordChars( '0', '0' ); aStreamTokenizer.wordChars( '1', '1' ); aStreamTokenizer.wordChars( '2', '2' ); aStreamTokenizer.wordChars( '3', '3' ); aStreamTokenizer.wordChars( '4', '4' ); aStreamTokenizer.wordChars( '5', '5' ); aStreamTokenizer.wordChars( '6', '6' ); aStreamTokenizer.wordChars( '7', '7' ); aStreamTokenizer.wordChars( '8', '8' ); aStreamTokenizer.wordChars( '9', '9' ); aStreamTokenizer.wordChars( '.', '.' ); aStreamTokenizer.wordChars( '-', '-' ); aStreamTokenizer.wordChars( '+', '+' ); aStreamTokenizer.wordChars( 'e', 'e' ); aStreamTokenizer.wordChars( 'E', 'E' ); aStreamTokenizer.wordChars( '\t', '\t' ); aStreamTokenizer.wordChars( ' ', ' ' ); aStreamTokenizer.eolIsSignificant( true );
static void setStreamTokenizerSyntax3(java.io.StreamTokenizer aStreamTokenizer)
          Sets the syntax of aStreamTokenizer as follows: aStreamTokenizer.resetSyntax(); aStreamTokenizer.wordChars( ',', ',' ); aStreamTokenizer.wordChars( '"', '"' ); aStreamTokenizer.wordChars( '0', '0' ); aStreamTokenizer.wordChars( '1', '1' ); aStreamTokenizer.wordChars( '2', '2' ); aStreamTokenizer.wordChars( '3', '3' ); aStreamTokenizer.wordChars( '4', '4' ); aStreamTokenizer.wordChars( '5', '5' ); aStreamTokenizer.wordChars( '6', '6' ); aStreamTokenizer.wordChars( '7', '7' ); aStreamTokenizer.wordChars( '8', '8' ); aStreamTokenizer.wordChars( '9', '9' ); aStreamTokenizer.wordChars( '.', '.' ); aStreamTokenizer.wordChars( '-', '-' ); aStreamTokenizer.wordChars( '+', '+' ); aStreamTokenizer.wordChars( 'a', 'z' ); aStreamTokenizer.wordChars( 'A', 'Z' ); aStreamTokenizer.wordChars( '\t', '\t' ); aStreamTokenizer.wordChars( ' ', ' ' ); aStreamTokenizer.wordChars( '_', '_' ); aStreamTokenizer.eolIsSignificant( true );
static void setStreamTokenizerSyntax4(java.io.StreamTokenizer aStreamTokenizer)
          Sets the syntax of aStreamTokenizer as follows: aStreamTokenizer.resetSyntax(); aStreamTokenizer.wordChars( ',', ',' ); aStreamTokenizer.wordChars( '"', '"' ); aStreamTokenizer.wordChars( '0', '0' ); aStreamTokenizer.wordChars( '1', '1' ); aStreamTokenizer.wordChars( '2', '2' ); aStreamTokenizer.wordChars( '3', '3' ); aStreamTokenizer.wordChars( '4', '4' ); aStreamTokenizer.wordChars( '5', '5' ); aStreamTokenizer.wordChars( '6', '6' ); aStreamTokenizer.wordChars( '7', '7' ); aStreamTokenizer.wordChars( '8', '8' ); aStreamTokenizer.wordChars( '9', '9' ); aStreamTokenizer.wordChars( '.', '.' ); aStreamTokenizer.wordChars( '-', '-' ); aStreamTokenizer.wordChars( '+', '+' ); aStreamTokenizer.wordChars( 'a', 'z' ); aStreamTokenizer.wordChars( 'A', 'Z' ); aStreamTokenizer.eolIsSignificant( true );
static void setStreamTokenizerSyntax5(java.io.StreamTokenizer aStreamTokenizer)
          Sets the syntax of aStreamTokenizer as follows: aStreamTokenizer.resetSyntax(); aStreamTokenizer.wordChars( ',', ',' ); aStreamTokenizer.wordChars( '"', '"' ); aStreamTokenizer.wordChars( '0', '0' ); aStreamTokenizer.wordChars( '1', '1' ); aStreamTokenizer.wordChars( '2', '2' ); aStreamTokenizer.wordChars( '3', '3' ); aStreamTokenizer.wordChars( '4', '4' ); aStreamTokenizer.wordChars( '5', '5' ); aStreamTokenizer.wordChars( '6', '6' ); aStreamTokenizer.wordChars( '7', '7' ); aStreamTokenizer.wordChars( '8', '8' ); aStreamTokenizer.wordChars( '9', '9' ); aStreamTokenizer.wordChars( '.', '.' ); aStreamTokenizer.wordChars( '-', '-' ); aStreamTokenizer.wordChars( '+', '+' ); aStreamTokenizer.wordChars( 'a', 'z' ); aStreamTokenizer.wordChars( 'A', 'Z' ); aStreamTokenizer.wordChars( '\t', '\t' ); aStreamTokenizer.wordChars( ' ', ' ' ); aStreamTokenizer.wordChars( ':', ':' ); aStreamTokenizer.wordChars( '/', '/' ); aStreamTokenizer.wordChars( '_', '_' );
static void skipline(java.io.StreamTokenizer streamTokenizer)
          Skips to the next token of StreamTokenizer.TT_EOL type in streamTokenizer.nextToken().
static void writeObject(java.lang.Object object, java.io.File file)
          Write object to file
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASSNAME

public static final java.lang.String CLASSNAME
See Also:
Constant Field Values
Constructor Detail

Generic_StaticIO

public Generic_StaticIO()
Creates a new instance of ObjectIO

Method Detail

recursiveFileList

public static java.util.TreeSet<java.lang.String> recursiveFileList(java.io.File file)

recursiveFileList

public static java.util.TreeSet<java.lang.String> recursiveFileList(java.io.File file,
                                                                    int depth)

writeObject

public static void writeObject(java.lang.Object object,
                               java.io.File file)
Write object to file


readObject

public static java.lang.Object readObject(java.io.File file)
Read Object from File


copyFile

public static void copyFile(java.io.File input_File,
                            java.io.File outputDirectory_File)
Parameters:
input_File - A File which is not a Directory to be copied
outputDirectory_File - A File that is the Directory to copy to.

copyFile

public static void copyFile(java.io.File input_File,
                            java.io.File outputDirectory_File,
                            java.lang.String outputFileName)
Parameters:
input_File - A File which is not a Directory to be copied
outputDirectory_File - A File that is the Directory to copy to.
outputFileName - The name for the file that will be created in the outputDirectory_File

copyDirectory

public static void copyDirectory(java.io.File a_DirectoryToCopy_File,
                                 java.io.File a_DirectoryToCopyInto_File)

copy

public static void copy(java.io.File a_FileOrDirectoryToCopy_File,
                        java.io.File a_DirectoryToCopyInto_File)

fileExistsAndCanBeRead

public static boolean fileExistsAndCanBeRead(java.io.File file)
Parameters:
file -
Returns:
true iff file exists and can be read

delete

public static long[] delete(java.io.File file)
Attempts to delete file from the file system. This does no block other reads or writes to the files system while it is executing and it will only succeed in deleting empty directories.

Parameters:
directory -
Returns:
long[] result where: result[0] is the number of directories deleted; result[1] is the number of files deleted.

createTempFile

public static java.io.File createTempFile()
Returns a newly created temporary _InputFile.


createTempFile

public static java.io.File createTempFile(java.io.File parentDirectory)
Returns a newly created temporary _InputFile.

Parameters:
parentDirectory - . Default extension to nothing.

createTempFile

public static java.io.File createTempFile(java.io.File parentDirectory,
                                          java.lang.String prefix,
                                          java.lang.String suffix)
Returns a newly created temporary _InputFile.

Parameters:
parentDirectory - .
prefix - If not 3 characters long, this will be padded with "x" characters.
suffix - If null the _InputFile is appended with ".tmp". Default extension to nothing.

createNewFile

public static java.io.File createNewFile()
Returns:
a File created by: return createNewFile(new File(System.getProperty("user.dir")));

createNewFile

public static java.io.File createNewFile(java.io.File parentDirectory)
Parameters:
parentDirectory - Default extension prefix and suffix nothing.
Returns:
a File created by: return createNewFile( parentDirectory, new String(""), new String(""));

createNewFile

public static java.io.File createNewFile(java.io.File parentDirectory,
                                         java.lang.String prefix,
                                         java.lang.String suffix)
Parameters:
parentDirectory -
prefix -
suffix -
Returns:
a File.

createNewFile

public static java.io.File createNewFile(java.io.File parentDirectory,
                                         java.lang.String filename)
Returns a newly created File which is a _InputFile if the filename. or a directory.

Parameters:
parentDirectory -
filename -

getBufferedReader

public static java.io.BufferedReader getBufferedReader(java.io.File file)
Parameters:
file -
Returns:
new BufferedReader(new InputStreamReader(new FileInputStream(file)))

skipline

public static void skipline(java.io.StreamTokenizer streamTokenizer)
Skips to the next token of StreamTokenizer.TT_EOL type in streamTokenizer.nextToken().

Parameters:
streamTokenizer -

setStreamTokenizerSyntax1

public static void setStreamTokenizerSyntax1(java.io.StreamTokenizer aStreamTokenizer)
Sets the syntax of aStreamTokenizer as follows:

Parameters:
aStreamTokenizer - StreamTokenizer thats syntax is set

setStreamTokenizerSyntax2

public static void setStreamTokenizerSyntax2(java.io.StreamTokenizer aStreamTokenizer)
Sets the syntax of aStreamTokenizer as follows:

Parameters:
aStreamTokenizer - StreamTokenizer thats syntax is set

setStreamTokenizerSyntax3

public static void setStreamTokenizerSyntax3(java.io.StreamTokenizer aStreamTokenizer)
Sets the syntax of aStreamTokenizer as follows:

Parameters:
aStreamTokenizer - StreamTokenizer thats syntax is set

setStreamTokenizerSyntax4

public static void setStreamTokenizerSyntax4(java.io.StreamTokenizer aStreamTokenizer)
Sets the syntax of aStreamTokenizer as follows:

Parameters:
aStreamTokenizer - StreamTokenizer thats syntax is set

setStreamTokenizerSyntax5

public static void setStreamTokenizerSyntax5(java.io.StreamTokenizer aStreamTokenizer)
Sets the syntax of aStreamTokenizer as follows:

Parameters:
aStreamTokenizer - StreamTokenizer thats syntax is set

getObjectDirectory

public static java.io.File getObjectDirectory(java.io.File directory,
                                              long a_ID,
                                              long max_ID,
                                              long range)
Parameters:
directory -
a_ID - The ID of the object to be stored
max_ID - The maximum number of objects to be stored
range - The number of objects stored per directory
Returns:
File directory in which object with a_ID is (to be) stored within directory0.

initialiseArchive

public static java.io.File initialiseArchive(java.io.File directory,
                                             long range)
Initialises a directory in directory and returns result. File result; long start = 0; long end = range - 1; result = new File( directory, "" + start + "_" + end + "/" + start); result.mkdirs(); return result;

Parameters:
directory -
range -
Returns:

initialiseArchive

public static void initialiseArchive(java.io.File directory,
                                     long range,
                                     long maxID)
                              throws java.io.IOException
Initialises an Archive directory structure. The structure of the archive is given by the range.

Parameters:
directory -
range -
maxID -
Throws:
java.io.IOException

initialiseArchiveReturnTreeMapLongFile

public static java.util.TreeMap<java.lang.Long,java.io.File> initialiseArchiveReturnTreeMapLongFile(java.io.File directory,
                                                                                                    long range,
                                                                                                    long maxID)
                                                                                             throws java.io.IOException
Initialises an Archive directory structure and returns a TreeMap of the Files in the Archive with numerical keys from 0 to maxID. The structure of the archive is given by the range.

Parameters:
directory -
range -
maxID -
Returns:
Throws:
java.io.IOException

getArchiveHighestLeaf

public static java.lang.Long getArchiveHighestLeaf(java.io.File directory,
                                                   java.lang.String underscore)

getArchiveRange

public static long getArchiveRange(java.io.File directory,
                                   java.lang.String underscore)

getArchiveLeafFiles

public static java.util.HashSet<java.io.File> getArchiveLeafFiles(java.io.File directory,
                                                                  java.lang.String underscore)
For returning all the leaf file elements in a branch of an archive as a HashSet<File>. An archive has directories such as ./0_99 which store leaves such as ./0_99/0 and ./0_99/10. The archive may have considerable depth such that an archive leaf is stored for example in ./0_999999/0_9999/0_99/0. The leaves are the directories at the end of the tree branches that contain directories that do not have an underscore in the filename

Parameters:
directory -
underscore -
Returns:
a HashSet<File> containing all files in the directory. The directory is regarded as a directory that possibly contains other directories in a branching tree with paths that are expected to end eventually in one or more files. All such files are returned in the result. The result is null if the directory is empty.

getArchiveLeafFiles_TreeMap

public static java.util.TreeMap<java.lang.Long,java.io.File> getArchiveLeafFiles_TreeMap(java.io.File directory,
                                                                                         java.lang.String underscore)
Parameters:
directory -
underscore -
Returns:

getArchiveLeafFiles_TreeMap

public static java.util.TreeMap<java.lang.Long,java.io.File> getArchiveLeafFiles_TreeMap(java.io.File directory,
                                                                                         java.lang.String underscore,
                                                                                         long minID,
                                                                                         long maxID)

getArchiveHighestLeafFile

public static java.io.File getArchiveHighestLeafFile(java.io.File directory,
                                                     java.lang.String underscore)
Parameters:
directory -
underscore -
Returns:
The highest numbered File

growArchiveBase

public static java.io.File growArchiveBase(java.io.File directory,
                                           long range)

growArchiveBase

public static java.io.File growArchiveBase(java.io.File directory,
                                           long range,
                                           long next_ID)

addToArchive

public static java.io.File addToArchive(java.io.File directory0,
                                        long range)

addToArchive

public static java.io.File addToArchive(java.io.File directory0,
                                        long range,
                                        long next_ID)

getFileThatExists

public static java.io.File getFileThatExists(java.io.File directory,
                                             java.lang.String filename)
                                      throws java.io.FileNotFoundException
Parameters:
directory -
filename -
Returns:
The File with filename in directory or throws FileNotFoundException if directory or the result does not exist.
Throws:
java.io.FileNotFoundException

getFilename

public static java.lang.String getFilename(java.io.File directory,
                                           java.io.File a_File)
Parameters:
directory -
a_File -
Returns:
The name of the file or directory in directory in the path of a_File.

getNumericalOrderFilesWithNumericalFilenames_TreeMap

public static java.util.TreeMap<java.lang.Long,java.io.File> getNumericalOrderFilesWithNumericalFilenames_TreeMap(java.io.File[] files)
getNumericalOrderFilesWithNumericalFilenames_TreeMap( File[] files) { TreeMap<Long, File> result = new TreeMap<Long, File>(); for (int i = 0; i < files.length; i++) { result.put( new Long(files[i].getName()), files[i]); } return result; }

Parameters:
files -
Returns:
TreeMap

getNumericalOrderFilesWithNumericalUnderscoreFilenames_TreeMap

public static java.util.TreeMap<java.lang.Long,java.io.File> getNumericalOrderFilesWithNumericalUnderscoreFilenames_TreeMap(java.io.File[] files,
                                                                                                                            java.lang.String underscore)
If needed to order also by a number after the underscore then a new method is needed.

Parameters:
files -
underscore - = "_"
Returns:
TreeMap

getNumericalAndNumericalUnderscoreFilenames_HashMap

public static java.util.HashMap<java.lang.Integer,java.lang.String> getNumericalAndNumericalUnderscoreFilenames_HashMap(java.io.File directory,
                                                                                                                        java.lang.String underscore)