Package org.h2.store.fs

# Class FileUtils

java.lang.Object
org.h2.store.fs.FileUtils

public class FileUtils extends Object
This utility class contains utility functions that use the file system abstraction.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final FileAttribute<?>[]`
`NO_ATTRIBUTES`
No file attributes.
`static final Set<? extends OpenOption>`
`R`
`StandardOpenOption.READ`.
`static final Set<? extends OpenOption>`
`RW`
`StandardOpenOption.READ`, `StandardOpenOption.WRITE`, and `StandardOpenOption.CREATE`.
`static final Set<? extends OpenOption>`
`RWD`
`StandardOpenOption.READ`, `StandardOpenOption.WRITE`, `StandardOpenOption.CREATE`, and `StandardOpenOption.DSYNC`.
`static final Set<? extends OpenOption>`
`RWS`
`StandardOpenOption.READ`, `StandardOpenOption.WRITE`, `StandardOpenOption.CREATE`, and `StandardOpenOption.SYNC`.

## Constructor Summary

Constructors
Constructor
Description
`FileUtils()`

## Method Summary

Modifier and Type
Method
Description
`static boolean`
`canWrite(String fileName)`
Check if the file is writable.
`static void`
`createDirectories(String dir)`
Create the directory and all required parent directories.
`static void`
`createDirectory(String directoryName)`
Create a directory (all required parent directories must already exist).
`static boolean`
`createFile(String fileName)`
Create a new file.
`static String`
`createTempFile(String prefix, String suffix, boolean inTempDir)`
Create a new temporary file.
`static void`
`delete(String path)`
Delete a file or directory if it exists.
`static void`
`deleteRecursive(String path, boolean tryOnly)`
Delete a directory or file and all subdirectories and files.
`static boolean`
`exists(String fileName)`
Checks if a file exists.
`static String`
`getName(String path)`
Get the file or directory name (the last element of the path).
`static String`
`getParent(String fileName)`
Get the parent directory of a file or directory.
`static boolean`
`isAbsolute(String fileName)`
Check if the file name includes a path.
`static boolean`
`isDirectory(String fileName)`
Check if it is a file or a directory.
`static boolean`
`isRegularFile(String fileName)`
Tests whether a file is a regular file.
`static long`
`lastModified(String fileName)`
Get the last modified date of a file.
`static Set<? extends OpenOption>`
`modeToOptions(String mode)`
Convert the string representation to a set.
`static void`
`move(String source, String target)`
Rename a file if this is allowed.
`static void`
`moveAtomicReplace(String source, String target)`
Rename a file if this is allowed, and try to atomically replace an existing file.
`static BufferedReader`
`newBufferedReader(String fileName, Charset charset)`
Create a buffered reader to read from the file.
`static List<String>`
`newDirectoryStream(String path)`
List the files and directories in the given directory.
`static InputStream`
`newInputStream(String fileName)`
Create an input stream to read from the file.
`static OutputStream`
`newOutputStream(String fileName, boolean append)`
Create an output stream to write into the file.
`static FileChannel`
`open(String fileName, String mode)`
Open a random access file object.
`static void`
`readFully(FileChannel channel, ByteBuffer dst)`
Fully read from the file.
`static boolean`
`setReadOnly(String fileName)`
Disable the ability to write.
`static long`
`size(String fileName)`
Get the size of a file in bytes This method is similar to Java 7 `java.nio.file.attribute.Attributes.`
`static String`
`toRealPath(String fileName)`
Get the canonical file or directory name.
`static boolean`
`tryDelete(String path)`
Try to delete a file or directory (ignoring errors).
`static String`
`unwrap(String fileName)`
Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).
`static void`
`writeFully(FileChannel channel, ByteBuffer src)`
Fully write to the file.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### R

public static final Set<? extends OpenOption> R
`StandardOpenOption.READ`.

### RW

public static final Set<? extends OpenOption> RW
`StandardOpenOption.READ`, `StandardOpenOption.WRITE`, and `StandardOpenOption.CREATE`.

### RWS

public static final Set<? extends OpenOption> RWS
`StandardOpenOption.READ`, `StandardOpenOption.WRITE`, `StandardOpenOption.CREATE`, and `StandardOpenOption.SYNC`.

### RWD

public static final Set<? extends OpenOption> RWD
`StandardOpenOption.READ`, `StandardOpenOption.WRITE`, `StandardOpenOption.CREATE`, and `StandardOpenOption.DSYNC`.

### NO_ATTRIBUTES

public static final FileAttribute<?>[] NO_ATTRIBUTES
No file attributes.

## Constructor Details

### FileUtils

public FileUtils()

## Method Details

### exists

public static boolean exists(String fileName)
Checks if a file exists. This method is similar to Java 7 `java.nio.file.Path.exists`.

Parameters:
  `fileName` - the file name
Returns:
  true if it exists

### createDirectory

public static void createDirectory(String directoryName)
Create a directory (all required parent directories must already exist). This method is similar to Java 7 `java.nio.file.Path.createDirectory`.

Parameters:
  `directoryName` - the directory name

### createFile

public static boolean createFile(String fileName)
Create a new file. This method is similar to Java 7 `java.nio.file.Path.createFile`, but returns false instead of throwing exception if the file already existed.

Parameters:
  `fileName` - the file name
Returns:
  true if creating was successful

### delete

public static void delete(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 7 `java.nio.file.Path.deleteIfExists`.

Parameters:
  `path` - the file or directory name

### toRealPath

public static String toRealPath(String fileName)
Get the canonical file or directory name. This method is similar to Java 7 `java.nio.file.Path.toRealPath`.

Parameters:
  `fileName` - the file name
Returns:
  the normalized file name

### getParent

public static String getParent(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 7 `java.nio.file.Path.getParent`.

Parameters:
  `fileName` - the file or directory name
Returns:
  the parent directory name

### isAbsolute

public static boolean isAbsolute(String fileName)
Check if the file name includes a path. This method is similar to Java 7 `java.nio.file.Path.isAbsolute`.

Parameters:
  `fileName` - the file name
Returns:
  if the file name is absolute

### move

public static void move(String source, String target)
Rename a file if this is allowed. This method is similar to Java 7 `java.nio.file.Files.move`.

Parameters:
  `source` - the old fully qualified file name
  `target` - the new fully qualified file name

### moveAtomicReplace

public static void moveAtomicReplace(String source, String target)
Rename a file if this is allowed, and try to atomically replace an existing file. This method is similar to Java 7 `java.nio.file.Files.move`.

Parameters:
  `source` - the old fully qualified file name
  `target` - the new fully qualified file name

### getName

public static String getName(String path)
Get the file or directory name (the last element of the path). This method is similar to Java 7 `java.nio.file.Path.getName`.

Parameters:
  `path` - the directory and file name
Returns:
  just the file name

### newDirectoryStream

public static List<String> newDirectoryStream(String path)
List the files and directories in the given directory. This method is similar to Java 7 `java.nio.file.Path.newDirectoryStream`.

Parameters:
  `path` - the directory
Returns:
  the list of fully qualified file names

### lastModified

public static long lastModified(String fileName)
Get the last modified date of a file. This method is similar to Java 7 `java.nio.file.attribute.Attributes. readBasicFileAttributes(file).lastModified().toMillis()`

Parameters:
  `fileName` - the file name
Returns:
  the last modified date

### size

public static long size(String fileName)
Get the size of a file in bytes This method is similar to Java 7 `java.nio.file.attribute.Attributes. readBasicFileAttributes(file).size()`

Parameters:
  `fileName` - the file name
Returns:
  the size in bytes

### isDirectory

public static boolean isDirectory(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

### isRegularFile

public static boolean isRegularFile(String fileName)
Tests whether a file is a regular file.

Parameters:
  `fileName` - the file or directory name
Returns:
  true if it is a regular file

### open

public static FileChannel open(String fileName, String mode) throws IOException
Open a random access file object. This method is similar to Java 7 `java.nio.channels.FileChannel.open`.

Parameters:
  `fileName` - the file name
  `mode` - the access mode. Supported are r, rw, rws, rwd
Returns:
  the file object
Throws:
  `IOException` - on failure

### newInputStream

public static InputStream newInputStream(String fileName) throws IOException
Create an input stream to read from the file. This method is similar to Java 7 `java.nio.file.Files.newInputStream()`.

Parameters:
  `fileName` - the file name
Returns:
  the input stream
Throws:
  `IOException` - on failure

### newBufferedReader

public static BufferedReader newBufferedReader(String fileName, Charset charset) throws IOException
Create a buffered reader to read from the file. This method is similar to `java.nio.file.Files.newBufferedReader()`.

Parameters:
  `fileName` - the file name
  `charset` - the charset
Returns:
  the buffered reader
Throws:
  `IOException` - on failure

### newOutputStream

public static OutputStream newOutputStream(String fileName, boolean append) throws IOException
Create an output stream to write into the file. This method is similar to `java.nio.file.Files.newOutputStream()`.

Parameters:
  `fileName` - the file name
  `append` - if true, the file will grow, if false, the file will be truncated first
Returns:
  the output stream
Throws:
  `IOException` - on failure

### canWrite

public static boolean canWrite(String fileName)
Check if the file is writable. This method is similar to Java 7 `java.nio.file.Path.checkAccess(AccessMode.WRITE)`

Parameters:
  `fileName` - the file name
Returns:
  if the file is writable

### setReadOnly

public static boolean setReadOnly(String fileName)
Disable the ability to write. The file can still be deleted afterward.

Parameters:
  `fileName` - the file name
Returns:
  true if the call was successful

### unwrap

public static String unwrap(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(String path, boolean tryOnly)
Delete a directory or file and all subdirectories and files.

Parameters:
  `path` - the path
  `tryOnly` - whether errors should be ignored

### createDirectories

public static void createDirectories(String dir)
Create the directory and all required parent directories.

Parameters:
  `dir` - the directory name

### tryDelete

public static boolean tryDelete(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 String createTempFile(String prefix, String suffix, boolean inTempDir) throws IOException
Create a new temporary file.

Parameters:
  `prefix` - the prefix of the file name (including directory name if required)
  `suffix` - the suffix
  `inTempDir` - if the file should be stored in the temporary directory
Returns:
  the name of the created file
Throws:
  `IOException` - on failure

### readFully

public static void readFully(FileChannel channel, ByteBuffer dst) throws IOException
Fully read from the file. This will read all remaining bytes, or throw an EOFException if not successful.

Parameters:
  `channel` - the file channel
  `dst` - the byte buffer
Throws:
  `IOException` - on failure

### writeFully

public static void writeFully(FileChannel channel, ByteBuffer src) throws IOException
Fully write to the file. This will write all remaining bytes.

Parameters:
  `channel` - the file channel
  `src` - the byte buffer
Throws:
  `IOException` - on failure

### modeToOptions

public static Set<? extends OpenOption> modeToOptions(String mode)
Convert the string representation to a set.

Parameters:
  `mode` - the mode as a string
Returns:
  the set