Package org.h2.store.fs
Class FileUtils
- java.lang.Object
-
- org.h2.store.fs.FileUtils
-
public class FileUtils extends java.lang.ObjectThis utility class contains utility functions that use the file system abstraction.
-
-
Field Summary
Fields Modifier and Type Field Description static java.nio.file.attribute.FileAttribute<?>[]NO_ATTRIBUTESNo file attributes.static java.util.Set<? extends java.nio.file.OpenOption>RStandardOpenOption.READ.static java.util.Set<? extends java.nio.file.OpenOption>RWStandardOpenOption.READ,StandardOpenOption.WRITE, andStandardOpenOption.CREATE.static java.util.Set<? extends java.nio.file.OpenOption>RWDStandardOpenOption.READ,StandardOpenOption.WRITE,StandardOpenOption.CREATE, andStandardOpenOption.DSYNC.static java.util.Set<? extends java.nio.file.OpenOption>RWSStandardOpenOption.READ,StandardOpenOption.WRITE,StandardOpenOption.CREATE, andStandardOpenOption.SYNC.
-
Constructor Summary
Constructors Constructor Description FileUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static booleancanWrite(java.lang.String fileName)Check if the file is writable.static voidcreateDirectories(java.lang.String dir)Create the directory and all required parent directories.static voidcreateDirectory(java.lang.String directoryName)Create a directory (all required parent directories must already exist).static booleancreateFile(java.lang.String fileName)Create a new file.static java.lang.StringcreateTempFile(java.lang.String prefix, java.lang.String suffix, boolean inTempDir)Create a new temporary file.static voiddelete(java.lang.String path)Delete a file or directory if it exists.static voiddeleteRecursive(java.lang.String path, boolean tryOnly)Delete a directory or file and all subdirectories and files.static booleanexists(java.lang.String fileName)Checks if a file exists.static java.lang.StringgetName(java.lang.String path)Get the file or directory name (the last element of the path).static java.lang.StringgetParent(java.lang.String fileName)Get the parent directory of a file or directory.static booleanisAbsolute(java.lang.String fileName)Check if the file name includes a path.static booleanisDirectory(java.lang.String fileName)Check if it is a file or a directory.static longlastModified(java.lang.String fileName)Get the last modified date of a file.static java.util.Set<? extends java.nio.file.OpenOption>modeToOptions(java.lang.String mode)Convert the string representation to a set.static voidmove(java.lang.String source, java.lang.String target)Rename a file if this is allowed.static voidmoveAtomicReplace(java.lang.String source, java.lang.String target)Rename a file if this is allowed, and try to atomically replace an existing file.static java.io.BufferedReadernewBufferedReader(java.lang.String fileName, java.nio.charset.Charset charset)Create a buffered reader to read from the file.static java.util.List<java.lang.String>newDirectoryStream(java.lang.String path)List the files and directories in the given directory.static java.io.InputStreamnewInputStream(java.lang.String fileName)Create an input stream to read from the file.static java.io.OutputStreamnewOutputStream(java.lang.String fileName, boolean append)Create an output stream to write into the file.static java.nio.channels.FileChannelopen(java.lang.String fileName, java.lang.String mode)Open a random access file object.static voidreadFully(java.nio.channels.FileChannel channel, java.nio.ByteBuffer dst)Fully read from the file.static booleansetReadOnly(java.lang.String fileName)Disable the ability to write.static longsize(java.lang.String fileName)Get the size of a file in bytes This method is similar to Java 7java.nio.file.attribute.Attributes.static java.lang.StringtoRealPath(java.lang.String fileName)Get the canonical file or directory name.static booleantryDelete(java.lang.String path)Try to delete a file or directory (ignoring errors).static java.lang.Stringunwrap(java.lang.String fileName)Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).static voidwriteFully(java.nio.channels.FileChannel channel, java.nio.ByteBuffer src)Fully write to the file.
-
-
-
Field Detail
-
R
public static final java.util.Set<? extends java.nio.file.OpenOption> R
StandardOpenOption.READ.
-
RW
public static final java.util.Set<? extends java.nio.file.OpenOption> RW
StandardOpenOption.READ,StandardOpenOption.WRITE, andStandardOpenOption.CREATE.
-
RWS
public static final java.util.Set<? extends java.nio.file.OpenOption> RWS
StandardOpenOption.READ,StandardOpenOption.WRITE,StandardOpenOption.CREATE, andStandardOpenOption.SYNC.
-
RWD
public static final java.util.Set<? extends java.nio.file.OpenOption> RWD
StandardOpenOption.READ,StandardOpenOption.WRITE,StandardOpenOption.CREATE, andStandardOpenOption.DSYNC.
-
NO_ATTRIBUTES
public static final java.nio.file.attribute.FileAttribute<?>[] NO_ATTRIBUTES
No file attributes.
-
-
Method Detail
-
exists
public static boolean exists(java.lang.String fileName)
Checks if a file exists. This method is similar to Java 7java.nio.file.Path.exists.- Parameters:
fileName- the file name- Returns:
- true if it exists
-
createDirectory
public static void createDirectory(java.lang.String directoryName)
Create a directory (all required parent directories must already exist). This method is similar to Java 7java.nio.file.Path.createDirectory.- Parameters:
directoryName- the directory name
-
createFile
public static boolean createFile(java.lang.String fileName)
Create a new file. This method is similar to Java 7java.nio.file.Path.createFile, but returns false instead of throwing a exception if the file already existed.- Parameters:
fileName- the file name- Returns:
- true if creating was successful
-
delete
public static void delete(java.lang.String path)
Delete a file or directory if it exists. Directories may only be deleted if they are empty. This method is similar to Java 7java.nio.file.Path.deleteIfExists.- Parameters:
path- the file or directory name
-
toRealPath
public static java.lang.String toRealPath(java.lang.String fileName)
Get the canonical file or directory name. This method is similar to Java 7java.nio.file.Path.toRealPath.- Parameters:
fileName- the file name- Returns:
- the normalized file name
-
getParent
public static java.lang.String getParent(java.lang.String fileName)
Get the parent directory of a file or directory. This method returns null if there is no parent. This method is similar to Java 7java.nio.file.Path.getParent.- Parameters:
fileName- the file or directory name- Returns:
- the parent directory name
-
isAbsolute
public static boolean isAbsolute(java.lang.String fileName)
Check if the file name includes a path. This method is similar to Java 7java.nio.file.Path.isAbsolute.- Parameters:
fileName- the file name- Returns:
- if the file name is absolute
-
move
public static void move(java.lang.String source, java.lang.String target)Rename a file if this is allowed. This method is similar to Java 7java.nio.file.Files.move.- Parameters:
source- the old fully qualified file nametarget- the new fully qualified file name
-
moveAtomicReplace
public static void moveAtomicReplace(java.lang.String source, java.lang.String target)Rename a file if this is allowed, and try to atomically replace an existing file. This method is similar to Java 7java.nio.file.Files.move.- Parameters:
source- the old fully qualified file nametarget- the new fully qualified file name
-
getName
public static java.lang.String getName(java.lang.String path)
Get the file or directory name (the last element of the path). This method is similar to Java 7java.nio.file.Path.getName.- Parameters:
path- the directory and file name- Returns:
- just the file name
-
newDirectoryStream
public static java.util.List<java.lang.String> newDirectoryStream(java.lang.String path)
List the files and directories in the given directory. This method is similar to Java 7java.nio.file.Path.newDirectoryStream.- Parameters:
path- the directory- Returns:
- the list of fully qualified file names
-
lastModified
public static long lastModified(java.lang.String fileName)
Get the last modified date of a file. This method is similar to Java 7java.nio.file.attribute.Attributes. readBasicFileAttributes(file).lastModified().toMillis()- Parameters:
fileName- the file name- Returns:
- the last modified date
-
size
public static long size(java.lang.String fileName)
Get the size of a file in bytes This method is similar to Java 7java.nio.file.attribute.Attributes. readBasicFileAttributes(file).size()- Parameters:
fileName- the file name- Returns:
- the size in bytes
-
isDirectory
public static boolean isDirectory(java.lang.String fileName)
Check if it is a file or a directory.java.nio.file.attribute.Attributes. readBasicFileAttributes(file).isDirectory()- Parameters:
fileName- the file or directory name- Returns:
- true if it is a directory
-
open
public static java.nio.channels.FileChannel open(java.lang.String fileName, java.lang.String mode) throws java.io.IOExceptionOpen a random access file object. This method is similar to Java 7java.nio.channels.FileChannel.open.- Parameters:
fileName- the file namemode- the access mode. Supported are r, rw, rws, rwd- Returns:
- the file object
- Throws:
java.io.IOException- on failure
-
newInputStream
public static java.io.InputStream newInputStream(java.lang.String fileName) throws java.io.IOExceptionCreate an input stream to read from the file. This method is similar to Java 7java.nio.file.Files.newInputStream().- Parameters:
fileName- the file name- Returns:
- the input stream
- Throws:
java.io.IOException- on failure
-
newBufferedReader
public static java.io.BufferedReader newBufferedReader(java.lang.String fileName, java.nio.charset.Charset charset) throws java.io.IOExceptionCreate a buffered reader to read from the file. This method is similar tojava.nio.file.Files.newBufferedReader().- Parameters:
fileName- the file namecharset- the charset- Returns:
- the buffered reader
- Throws:
java.io.IOException- on failure
-
newOutputStream
public static java.io.OutputStream newOutputStream(java.lang.String fileName, boolean append) throws java.io.IOExceptionCreate an output stream to write into the file. This method is similar tojava.nio.file.Files.newOutputStream().- Parameters:
fileName- the file nameappend- if true, the file will grow, if false, the file will be truncated first- Returns:
- the output stream
- Throws:
java.io.IOException- on failure
-
canWrite
public static boolean canWrite(java.lang.String fileName)
Check if the file is writable. This method is similar to Java 7java.nio.file.Path.checkAccess(AccessMode.WRITE)- Parameters:
fileName- the file name- Returns:
- if the file is writable
-
setReadOnly
public static boolean setReadOnly(java.lang.String fileName)
Disable the ability to write. The file can still be deleted afterwards.- Parameters:
fileName- the file name- Returns:
- true if the call was successful
-
unwrap
public static java.lang.String unwrap(java.lang.String fileName)
Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).- Parameters:
fileName- the file name- Returns:
- the unwrapped
-
deleteRecursive
public static void deleteRecursive(java.lang.String path, boolean tryOnly)Delete a directory or file and all subdirectories and files.- Parameters:
path- the pathtryOnly- whether errors should be ignored
-
createDirectories
public static void createDirectories(java.lang.String dir)
Create the directory and all required parent directories.- Parameters:
dir- the directory name
-
tryDelete
public static boolean tryDelete(java.lang.String path)
Try to delete a file or directory (ignoring errors).- Parameters:
path- the file or directory name- Returns:
- true if it worked
-
createTempFile
public static java.lang.String createTempFile(java.lang.String prefix, java.lang.String suffix, boolean inTempDir) throws java.io.IOExceptionCreate a new temporary file.- Parameters:
prefix- the prefix of the file name (including directory name if required)suffix- the suffixinTempDir- if the file should be stored in the temporary directory- Returns:
- the name of the created file
- Throws:
java.io.IOException- on failure
-
readFully
public static void readFully(java.nio.channels.FileChannel channel, java.nio.ByteBuffer dst) throws java.io.IOExceptionFully read from the file. This will read all remaining bytes, or throw an EOFException if not successful.- Parameters:
channel- the file channeldst- the byte buffer- Throws:
java.io.IOException- on failure
-
writeFully
public static void writeFully(java.nio.channels.FileChannel channel, java.nio.ByteBuffer src) throws java.io.IOExceptionFully write to the file. This will write all remaining bytes.- Parameters:
channel- the file channelsrc- the byte buffer- Throws:
java.io.IOException- on failure
-
modeToOptions
public static java.util.Set<? extends java.nio.file.OpenOption> modeToOptions(java.lang.String mode)
Convert the string representation to a set.- Parameters:
mode- the mode as a string- Returns:
- the set
-
-