public class Files extends Object
Additional file systems can be plugged into this module, by calling the addFileSystemCapability() method. FileSystems have read and/or write capabilities, as specified using the FSCapability constants. Files using these external file systems should be denoted by scheme prefixes - eg ftp://, http:// etc. NB: file:// is the default scheme
Support for additional stream compression & decompression can be plugged in by calling addFilterInputStreamMapping().
Terrier can cache files which will see heavy IO activity. In particular, files mentioned in the files.to.cache property will be cached to the default temporary folder. There are also API method to populate the cache with files. For all methods, java.io.tmpdir is the default temporary directory. An IOException will occur if caching fails for some reason.
Modifier and Type | Class and Description |
---|---|
static interface |
Files.FSCapability
constants declaring which capabilites a file system has
|
protected static class |
Files.PathTransformation
a search regex and a replacement for path transformations
|
Modifier and Type | Field and Description |
---|---|
protected static String |
DEFAULT_SCHEME
default scheme
|
protected static Map<String,FileSystem> |
fileSystems
map of scheme to FileSystem implementation
|
protected static List<Files.PathTransformation> |
pathTransformations
transformations to apply to a path
|
Constructor and Description |
---|
Files() |
Modifier and Type | Method and Description |
---|---|
static void |
addFileSystemCapability(FileSystem fs)
Add a file system to Terrier.
|
static void |
addFilterInputStreamMapping(String regex,
Class<? extends InputStream> inputStreamClass,
Class<? extends OutputStream> outputStreamClass)
Add a filter mapping to the Files layes.
|
static void |
addPathTransormation(String find,
String replace)
add a static transformation to apply to a path.
|
static void |
cacheFile(String filename)
Cache to the temporary directory specified by java.io.tmpdir System property.
|
static void |
cacheFile(String filename,
String temporaryFolder)
Cache file to specified temporary folder
|
static boolean |
canRead(String filename)
returns true iff path can be read
|
static boolean |
canWrite(String filename)
returns true iff path can be read
|
static Long |
copyFile(File srcFile,
File destFile)
Copy a file from srcFile to destFile.
|
static Long |
copyFile(InputStream in,
OutputStream out)
Copy all bytes from in to out
|
static Long |
copyFile(String srcFilename,
String destFilename)
Copy a file from srcFile to destFile.
|
static Long |
createChecksum(File file)
Returns the CRC checksum of denoted file
|
static boolean |
delete(String filename)
Delete the named file.
|
static boolean |
deleteOnExit(String path)
Mark the named path as to be deleted on exit.
|
static boolean |
exists(String path)
returns true iff the path is really a path
|
protected static FileSystem |
getFileSystem(String filename)
derive the file system to use that is associated with the scheme in the specified filename.
|
static String |
getFileSystemName(String path)
Get the name of the file system that would be used to access a given file or directory.
|
static String |
getParent(String path)
What is the parent path to the specified path?
|
protected static void |
initialise_mappings()
initialise the default compression mappings
|
protected static void |
initialise_static_cache()
we may have been specified some files to cache immediately
|
protected static void |
intialise_transformations()
initialise the transformations from Application property
|
static boolean |
isDirectory(String path)
return true if path is a directory
|
static long |
length(File f)
returns the length of file f
|
static long |
length(String filename)
returns the length of the file, or 0L if cannot be found etc
|
static String[] |
list(String path)
List the contents of a directory
|
static void |
main(String[] args)
Check that the a specified file exists as per Terrier's file system abstraction layer
|
static boolean |
mkdir(String path)
returns true if the specificed path can be made as a directory
|
protected static InputStream |
openFile(String filename)
Opens an OutputStream to a file called Filename, processing all
allowed writable file systems named in writeFileSystemPrefixes
|
static RandomDataInput |
openFileRandom(File file)
Open a file for random access reading
|
static RandomDataInput |
openFileRandom(String filename)
Returns a RandomAccessFile implementation accessing the specificed file
|
static BufferedReader |
openFileReader(File file)
Opens a reader to the file called file.
|
static BufferedReader |
openFileReader(File file,
String charset)
Opens a reader to the file called filename.
|
static BufferedReader |
openFileReader(String filename)
Opens a reader to the file called filename.
|
static BufferedReader |
openFileReader(String filename,
String charset)
Opens a reader to the file called filename.
|
static InputStream |
openFileStream(File file)
Opens an InputStream to a file called file.
|
static InputStream |
openFileStream(String filename)
Opens an InputStream to a file called filename.
|
static boolean |
rename(String sourceFilename,
String destFilename)
rename a file or directory.
|
protected static String |
transform(String filename)
apply any transformations to the specified filename
|
protected static OutputStream |
writeFile(String filename)
Opens an OutputStream to a file called filename, using the filesystem
named in the scheme component of the filename.
|
static RandomDataOutput |
writeFileRandom(File file)
Open a file for random access writing and reading
|
static RandomDataOutput |
writeFileRandom(String filename)
Returns a RandomAccessFile implementation accessing the specificed file
|
static OutputStream |
writeFileStream(File file)
Opens an OutputStream to a file called file.
|
static OutputStream |
writeFileStream(String filename)
Opens an OutputStream to a file called filename.
|
static Writer |
writeFileWriter(File file)
Opens an Writer to a file called file.
|
static Writer |
writeFileWriter(File file,
String charset)
Opens an Writer to a file called file.
|
static Writer |
writeFileWriter(String filename)
Opens an Writer to a file called file.
|
static Writer |
writeFileWriter(String filename,
String charset)
Opens an Writer to a file called file.
|
protected static final Map<String,FileSystem> fileSystems
protected static final List<Files.PathTransformation> pathTransformations
protected static final String DEFAULT_SCHEME
public static void addFilterInputStreamMapping(String regex, Class<? extends InputStream> inputStreamClass, Class<? extends OutputStream> outputStreamClass)
addFilterInputStreamMapping(".+\\.gz$", GZIPInputStream.class, GZIPOutputStream.class); addFilterInputStreamMapping(".+\\.GZ$", GZIPInputStream.class, GZIPOutputStream.class);
regex
- Regular expression that the filename must match to require the filter streaminputStreamClass
- Class extending InputStream that decompresses the fileoutputStreamClass
- Class extending OutputStream that compresses the fileprotected static void initialise_static_cache()
protected static void intialise_transformations()
protected static void initialise_mappings()
public static void cacheFile(String filename) throws IOException
IOException
public static void cacheFile(String filename, String temporaryFolder) throws IOException
IOException
public static void addPathTransormation(String find, String replace)
public static void addFileSystemCapability(FileSystem fs)
protected static String transform(String filename)
protected static FileSystem getFileSystem(String filename)
filename
- public static String getFileSystemName(String path)
path
- protected static InputStream openFile(String filename) throws IOException
filename
- Filename of file to openIOException
protected static OutputStream writeFile(String filename) throws IOException
filename
- Filename of file to open, optionally including schemeIOException
public static RandomDataInput openFileRandom(String filename) throws IOException
IOException
public static RandomDataOutput writeFileRandom(String filename) throws IOException
IOException
public static boolean delete(String filename)
filename
- path to file to deletepublic static boolean deleteOnExit(String path)
public static boolean exists(String path)
public static boolean canRead(String filename)
public static boolean canWrite(String filename)
public static boolean mkdir(String path)
public static long length(String filename)
public static boolean isDirectory(String path)
public static boolean rename(String sourceFilename, String destFilename)
public static String getParent(String path)
public static BufferedReader openFileReader(File file) throws IOException
file
- File to open.IOException
public static BufferedReader openFileReader(File file, String charset) throws IOException
file
- File to open.charset
- Character set encoding of file. null for system default.IOException
public static BufferedReader openFileReader(String filename) throws IOException
filename
- File to open.IOException
public static BufferedReader openFileReader(String filename, String charset) throws IOException
filename
- File to open.charset
- Character set encoding of file. null for system default.IOException
public static InputStream openFileStream(File file) throws IOException
file
- File to open.IOException
public static RandomDataInput openFileRandom(File file) throws IOException
IOException
public static InputStream openFileStream(String filename) throws IOException
filename
- File to open.IOException
public static OutputStream writeFileStream(File file) throws IOException
file
- File to open.IOException
public static RandomDataOutput writeFileRandom(File file) throws IOException
IOException
public static OutputStream writeFileStream(String filename) throws IOException
filename
- File to open.IOException
public static Writer writeFileWriter(File file) throws IOException
file
- File to open.IOException
public static Writer writeFileWriter(File file, String charset) throws IOException
file
- File to open.charset
- Character set encoding of file. null for system default.IOException
public static Writer writeFileWriter(String filename) throws IOException
filename
- File to open.IOException
public static Writer writeFileWriter(String filename, String charset) throws IOException
filename
- File to open.charset
- Character set encoding of file. null for system default.IOException
public static Long copyFile(String srcFilename, String destFilename) throws IOException
IOException
- if there was a problem copyingpublic static Long copyFile(File srcFile, File destFile) throws IOException
IOException
- if there was a problem copyingpublic static Long copyFile(InputStream in, OutputStream out) throws IOException
IOException
public static Long createChecksum(File file) throws IOException
IOException
public static long length(File f)
public static void main(String[] args)
Terrier 4.0. Copyright © 2004-2014 University of Glasgow