Package org.h2.store.fs
Class FileUtils
- java.lang.Object
-
- org.h2.store.fs.FileUtils
-
public class FileUtils extends java.lang.Object
This 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_ATTRIBUTES
No file attributes.static java.util.Set<? extends java.nio.file.OpenOption>
R
StandardOpenOption.READ
.static java.util.Set<? extends java.nio.file.OpenOption>
RW
StandardOpenOption.READ
,StandardOpenOption.WRITE
, andStandardOpenOption.CREATE
.static java.util.Set<? extends java.nio.file.OpenOption>
RWD
StandardOpenOption.READ
,StandardOpenOption.WRITE
,StandardOpenOption.CREATE
, andStandardOpenOption.DSYNC
.static java.util.Set<? extends java.nio.file.OpenOption>
RWS
StandardOpenOption.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 boolean
canWrite(java.lang.String fileName)
Check if the file is writable.static void
createDirectories(java.lang.String dir)
Create the directory and all required parent directories.static void
createDirectory(java.lang.String directoryName)
Create a directory (all required parent directories must already exist).static boolean
createFile(java.lang.String fileName)
Create a new file.static java.lang.String
createTempFile(java.lang.String prefix, java.lang.String suffix, boolean inTempDir)
Create a new temporary file.static void
delete(java.lang.String path)
Delete a file or directory if it exists.static void
deleteRecursive(java.lang.String path, boolean tryOnly)
Delete a directory or file and all subdirectories and files.static boolean
exists(java.lang.String fileName)
Checks if a file exists.static java.lang.String
getName(java.lang.String path)
Get the file or directory name (the last element of the path).static java.lang.String
getParent(java.lang.String fileName)
Get the parent directory of a file or directory.static boolean
isAbsolute(java.lang.String fileName)
Check if the file name includes a path.static boolean
isDirectory(java.lang.String fileName)
Check if it is a file or a directory.static long
lastModified(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 void
move(java.lang.String source, java.lang.String target)
Rename a file if this is allowed.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.static java.io.BufferedReader
newBufferedReader(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.InputStream
newInputStream(java.lang.String fileName)
Create an input stream to read from the file.static java.io.OutputStream
newOutputStream(java.lang.String fileName, boolean append)
Create an output stream to write into the file.static java.nio.channels.FileChannel
open(java.lang.String fileName, java.lang.String mode)
Open a random access file object.static void
readFully(java.nio.channels.FileChannel channel, java.nio.ByteBuffer dst)
Fully read from the file.static boolean
setReadOnly(java.lang.String fileName)
Disable the ability to write.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.
static java.lang.String
toRealPath(java.lang.String fileName)
Get the canonical file or directory name.static boolean
tryDelete(java.lang.String path)
Try to delete a file or directory (ignoring errors).static java.lang.String
unwrap(java.lang.String fileName)
Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).static void
writeFully(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.IOException
Open 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.IOException
Create 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.IOException
Create 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.IOException
Create 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.IOException
Create 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.IOException
Fully 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.IOException
Fully 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
-
-