Modifier and Type | Method and Description |
---|---|
static void |
append(CharSequence from,
File to,
Charset charset)
Appends a character sequence (such as a string) to a file using the given character set.
|
static ByteSink |
asByteSink(File file,
FileWriteMode... modes)
Returns a new
ByteSink for writing bytes to the given file. |
static ByteSource |
asByteSource(File file)
Returns a new
ByteSource for reading bytes from the given file. |
static CharSink |
asCharSink(File file,
Charset charset,
FileWriteMode... modes)
Returns a new
CharSink for writing character data to the given file using the given character set. |
static CharSource |
asCharSource(File file,
Charset charset)
Returns a new
CharSource for reading character data from the given file using the given character set. |
static void |
copy(File from,
Charset charset,
Appendable to)
Copies all characters from a file to an appendable object, using the given character set.
|
static void |
copy(File from,
File to)
Copies all the bytes from one file to another.
|
static void |
copy(File from,
OutputStream to)
Copies all bytes from a file to an output stream.
|
static void |
createParentDirs(File file)
Creates any necessary but nonexistent parent directories of the specified file.
|
static File |
createTempDir()
Atomically creates a new directory somewhere beneath the system’s temporary directory (as defined by the
java.io.tmpdir system property), and returns its name. |
static boolean |
equal(File file1,
File file2)
Returns true if the files contains the same bytes.
|
static TreeTraverser<File> |
fileTreeTraverser()
Returns a
TreeTraverser instance for File trees. |
static String |
getFileExtension(String fullName)
Returns the file extension for the given file name, or the empty string if the file has no extension.
|
static String |
getNameWithoutExtension(String file)
Returns the file name without its file extension or path.
|
static HashCode |
hash(File file,
HashFunction hashFunction)
Computes the hash code of the
file using hashFunction . |
static Predicate<File> |
isDirectory()
Returns a predicate that returns the result of
File.isDirectory() on input files. |
static Predicate<File> |
isFile()
Returns a predicate that returns the result of
File.isFile() on input files. |
static MappedByteBuffer |
map(File file)
Fully maps a file read-only in to memory as per
FileChannel.map(java.nio.channels.FileChannel.MapMode, long, long) . |
static MappedByteBuffer |
map(File file,
FileChannel.MapMode mode)
Fully maps a file in to memory as per
FileChannel.map(java.nio.channels.FileChannel.MapMode, long, long) using the requested FileChannel.MapMode . |
static MappedByteBuffer |
map(File file,
FileChannel.MapMode mode,
long size)
Maps a file in to memory as per
FileChannel.map(java.nio.channels.FileChannel.MapMode, long, long) using the requested FileChannel.MapMode . |
static void |
move(File from,
File to)
Moves a file from one path to another.
|
static BufferedReader |
newReader(File file,
Charset charset)
Returns a buffered reader that reads from a file using the given character set.
|
static BufferedWriter |
newWriter(File file,
Charset charset)
Returns a buffered writer that writes to a file using the given character set.
|
static <T> T |
readBytes(File file,
ByteProcessor<T> processor)
Process the bytes of a file.
|
static String |
readFirstLine(File file,
Charset charset)
Reads the first line from a file.
|
static List<String> |
readLines(File file,
Charset charset)
Reads all of the lines from a file.
|
static <T> T |
readLines(File file,
Charset charset,
LineProcessor<T> callback)
Streams lines from a
File , stopping when our callback returns false, or we have read all of the lines. |
static String |
simplifyPath(String pathname)
Returns the lexically cleaned form of the path name, usually (but not always) equivalent to the original.
|
static byte[] |
toByteArray(File file)
Reads all bytes from a file into a byte array.
|
static String |
toString(File file,
Charset charset)
Reads all characters from a file into a
String , using the given character set. |
static void |
touch(File file)
Creates an empty file or updates the last updated timestamp on the same as the unix command of the same name.
|
static void |
write(byte[] from,
File to)
Overwrites a file with the contents of a byte array.
|
static void |
write(CharSequence from,
File to,
Charset charset)
Writes a character sequence (such as a string) to a file using the given character set.
|
public static BufferedReader newReader(File file, Charset charset) throws FileNotFoundException
Returns a buffered reader that reads from a file using the given character set.
file
- the file to read fromcharset
- the charset used to decode the input stream; see StandardCharsets
for helpful predefined constantsFileNotFoundException
public static BufferedWriter newWriter(File file, Charset charset) throws FileNotFoundException
Returns a buffered writer that writes to a file using the given character set.
file
- the file to write tocharset
- the charset used to encode the output stream; see StandardCharsets
for helpful predefined constantsFileNotFoundException
public static ByteSource asByteSource(File file)
Returns a new ByteSource
for reading bytes from the given file.
public static ByteSink asByteSink(File file, FileWriteMode... modes)
Returns a new ByteSink
for writing bytes to the given file. The given modes
control how the file is opened for writing. When no mode is provided, the file will be truncated before writing. When the APPEND
mode is provided, writes will append to the end of the file without truncating it.
public static CharSource asCharSource(File file, Charset charset)
Returns a new CharSource
for reading character data from the given file using the given character set.
public static CharSink asCharSink(File file, Charset charset, FileWriteMode... modes)
Returns a new CharSink
for writing character data to the given file using the given character set. The given modes
control how the file is opened for writing. When no mode is provided, the file will be truncated before writing. When the APPEND
mode is provided, writes will append to the end of the file without truncating it.
public static byte[] toByteArray(File file) throws IOException
Reads all bytes from a file into a byte array.
file
- the file to read fromIllegalArgumentException
- if the file is bigger than the largest possible byte array (2^31 - 1)IOException
- if an I/O error occurspublic static String toString(File file, Charset charset) throws IOException
Reads all characters from a file into a String
, using the given character set.
file
- the file to read fromcharset
- the charset used to decode the input stream; see StandardCharsets
for helpful predefined constantsIOException
- if an I/O error occurspublic static void write(byte[] from, File to) throws IOException
Overwrites a file with the contents of a byte array.
from
- the bytes to writeto
- the destination fileIOException
- if an I/O error occurspublic static void copy(File from, OutputStream to) throws IOException
Copies all bytes from a file to an output stream.
from
- the source fileto
- the output streamIOException
- if an I/O error occurspublic static void copy(File from, File to) throws IOException
Copies all the bytes from one file to another.
Warning: If to
represents an existing file, that file will be overwritten with the contents of from
. If to
and from
refer to the same file, the contents of that file will be deleted.
from
- the source fileto
- the destination fileIOException
- if an I/O error occursIllegalArgumentException
- if from.equals(to)
public static void write(CharSequence from, File to, Charset charset) throws IOException
Writes a character sequence (such as a string) to a file using the given character set.
from
- the character sequence to writeto
- the destination filecharset
- the charset used to encode the output stream; see StandardCharsets
for helpful predefined constantsIOException
- if an I/O error occurspublic static void append(CharSequence from, File to, Charset charset) throws IOException
Appends a character sequence (such as a string) to a file using the given character set.
from
- the character sequence to appendto
- the destination filecharset
- the charset used to encode the output stream; see StandardCharsets
for helpful predefined constantsIOException
- if an I/O error occurspublic static void copy(File from, Charset charset, Appendable to) throws IOException
Copies all characters from a file to an appendable object, using the given character set.
from
- the source filecharset
- the charset used to decode the input stream; see StandardCharsets
for helpful predefined constantsto
- the appendable objectIOException
- if an I/O error occurspublic static boolean equal(File file1, File file2) throws IOException
Returns true if the files contains the same bytes.
IOException
- if an I/O error occurspublic static File createTempDir()
Atomically creates a new directory somewhere beneath the system’s temporary directory (as defined by the java.io.tmpdir
system property), and returns its name.
Use this method instead of File.createTempFile(String, String)
when you wish to create a directory, not a regular file. A common pitfall is to call createTempFile
, delete the file and create a directory in its place, but this leads a race condition which can be exploited to create security vulnerabilities, especially when executable files are to be written into the directory.
This method assumes that the temporary volume is writable, has free inodes and free blocks, and that it will not be called thousands of times per second.
IllegalStateException
- if the directory could not be createdpublic static void touch(File file) throws IOException
Creates an empty file or updates the last updated timestamp on the same as the unix command of the same name.
file
- the file to create or updateIOException
- if an I/O error occurspublic static void createParentDirs(File file) throws IOException
Creates any necessary but nonexistent parent directories of the specified file. Note that if this operation fails it may have succeeded in creating some (but not all) of the necessary parent directories.
IOException
- if an I/O error occurs, or if any necessary but nonexistent parent directories of the specified file could not be created.public static void move(File from, File to) throws IOException
Moves a file from one path to another. This method can rename a file and/or move it to a different directory. In either case to
must be the target path for the file itself; not just the new name for the file or the path to the new parent directory.
from
- the source fileto
- the destination fileIOException
- if an I/O error occursIllegalArgumentException
- if from.equals(to)
public static String readFirstLine(File file, Charset charset) throws IOException
Reads the first line from a file. The line does not include line-termination characters, but does include other leading and trailing whitespace.
file
- the file to read fromcharset
- the charset used to decode the input stream; see StandardCharsets
for helpful predefined constantsIOException
- if an I/O error occurspublic static List<String> readLines(File file, Charset charset) throws IOException
Reads all of the lines from a file. The lines do not include line-termination characters, but do include other leading and trailing whitespace.
This method returns a mutable List
. For an ImmutableList
, use Files.asCharSource(file, charset).readLines()
.
file
- the file to read fromcharset
- the charset used to decode the input stream; see StandardCharsets
for helpful predefined constantsList
containing all the linesIOException
- if an I/O error occurspublic static <T> T readLines(File file, Charset charset, LineProcessor<T> callback) throws IOException
Streams lines from a File
, stopping when our callback returns false, or we have read all of the lines.
file
- the file to read fromcharset
- the charset used to decode the input stream; see StandardCharsets
for helpful predefined constantscallback
- the LineProcessor
to use to handle the linesIOException
- if an I/O error occurspublic static <T> T readBytes(File file, ByteProcessor<T> processor) throws IOException
Process the bytes of a file.
(If this seems too complicated, maybe you’re looking for toByteArray(java.io.File)
.)
file
- the file to readprocessor
- the object to which the bytes of the file are passed.IOException
- if an I/O error occurspublic static HashCode hash(File file, HashFunction hashFunction) throws IOException
Computes the hash code of the file
using hashFunction
.
file
- the file to readhashFunction
- the hash function to use to hash the dataHashCode
of all of the bytes in the fileIOException
- if an I/O error occurspublic static MappedByteBuffer map(File file) throws IOException
Fully maps a file read-only in to memory as per FileChannel.map(java.nio.channels.FileChannel.MapMode, long, long)
.
Files are mapped from offset 0 to its length.
This only works for files <= Integer.MAX_VALUE
bytes.
file
- the file to mapfile
FileNotFoundException
- if the file
does not existIOException
- if an I/O error occursFileChannel.map(MapMode, long, long)
public static MappedByteBuffer map(File file, FileChannel.MapMode mode) throws IOException
Fully maps a file in to memory as per FileChannel.map(java.nio.channels.FileChannel.MapMode, long, long)
using the requested FileChannel.MapMode
.
Files are mapped from offset 0 to its length.
This only works for files <= Integer.MAX_VALUE
bytes.
file
- the file to mapmode
- the mode to use when mapping file
file
FileNotFoundException
- if the file
does not existIOException
- if an I/O error occursFileChannel.map(MapMode, long, long)
public static MappedByteBuffer map(File file, FileChannel.MapMode mode, long size) throws FileNotFoundException, IOException
Maps a file in to memory as per FileChannel.map(java.nio.channels.FileChannel.MapMode, long, long)
using the requested FileChannel.MapMode
.
Files are mapped from offset 0 to size
.
If the mode is FileChannel.MapMode.READ_WRITE
and the file does not exist, it will be created with the requested size
. Thus this method is useful for creating memory mapped files which do not yet exist.
This only works for files <= Integer.MAX_VALUE
bytes.
file
- the file to mapmode
- the mode to use when mapping file
file
IOException
- if an I/O error occursFileNotFoundException
FileChannel.map(MapMode, long, long)
public static String simplifyPath(String pathname)
Returns the lexically cleaned form of the path name, usually (but not always) equivalent to the original. The following heuristics are used:
These heuristics do not always match the behavior of the filesystem. In particular, consider the path a/../b
, which simplifyPath
will change to b
. If a
is a symlink to x
, a/../b
may refer to a sibling of x
, rather than the sibling of a
referred to by b
.
public static String getFileExtension(String fullName)
Returns the file extension for the given file name, or the empty string if the file has no extension. The result does not include the ‘.
’.
public static String getNameWithoutExtension(String file)
Returns the file name without its file extension or path. This is similar to the basename
unix command. The result does not include the ‘.
’.
file
- The name of the file to trim the extension from. This can be either a fully qualified file name (including a path) or just a file name.public static TreeTraverser<File> fileTreeTraverser()
Returns a TreeTraverser
instance for File
trees.
Warning: File
provides no support for symbolic links, and as such there is no way to ensure that a symbolic link to a directory is not followed when traversing the tree. In this case, iterables created by this traverser could contain files that are outside of the given directory or even be infinite if there is a symbolic link loop.
public static Predicate<File> isDirectory()
Returns a predicate that returns the result of File.isDirectory()
on input files.
public static Predicate<File> isFile()
Returns a predicate that returns the result of File.isFile()
on input files.