Package com.simplicite.util.tools
Class FileTool
- java.lang.Object
-
- com.simplicite.util.tools.FileTool
-
public class FileTool extends java.lang.Object
File management toolbox
This class only provides static variables and methods
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FileTool.DeleteOnCloseInputStream
Custom FileInputFile with auto-deletion on close
-
Field Summary
Fields Modifier and Type Field Description static int
BUFFER_SIZE
Buffer sizestatic int
UPLOAD_SIZE_UNIT
MAX_UPLOAD_SIZE unit = 1Mo
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
cleanDir(java.io.File file)
Clean dir contentstatic boolean
cleanDir(java.io.File file, boolean silent)
Clean dir contentstatic boolean
cleanDir(java.lang.String path)
Clean dir contentstatic boolean
cleanDir(java.lang.String path, boolean silent)
Clean dir contentstatic void
concatFiles(java.io.InputStream[] is, java.io.OutputStream out)
Concat all input stream into output stream, flush and closestatic void
copyFile(java.io.File src, java.io.File dest, boolean override)
File copystatic void
copyFile(java.lang.String srcPath, java.lang.String destPath, boolean override)
File copystatic long
countFiles(java.io.File dir)
Count files in a directorystatic long
countFiles(java.io.File dir, java.lang.String pattern)
Count files in a directory with matching patternstatic long
countFiles(java.lang.String dir)
Count files in a directorystatic java.lang.String
decode(java.lang.String name)
Decode a File name to become a namestatic boolean
deleteFileOrDir(java.io.File file)
Delete file or dirstatic boolean
deleteFileOrDir(java.io.File file, boolean silent)
Delete file or dirstatic boolean
deleteFileOrDir(java.lang.String path)
Delete file or dirstatic boolean
deleteFileOrDir(java.lang.String path, boolean silent)
Delete file or dirstatic java.lang.String
encode(java.lang.String name)
Encode a name to become a File name: escape special characters (% / \ * ? " < > |) with %hexa valuestatic java.util.List<java.lang.String>
getAllFiles(java.io.File dir)
List all files of dirstatic java.util.List<java.lang.String>
getAllFiles(java.io.File dir, java.lang.String pattern, boolean sort)
List all files of dir with optional pattern (returns an empty list if directory does not exists)static java.util.List<java.lang.String>
getAllFiles(java.lang.String dir)
List all files of dirstatic java.util.List<java.lang.String>
getAllFiles(java.lang.String dir, java.lang.String pattern, boolean sort)
List all files of dir with optional pattern (returns an empty list if directory does not exists)static java.lang.String
getExtension(java.io.File file)
Get file extension from pathstatic java.lang.String
getExtension(java.lang.String path)
Get file extension from pathstatic java.lang.String
getMIMEType(java.io.File file)
Get MIME type from filestatic java.lang.String
getMIMEType(java.lang.String path)
Get MIME type from file pathstatic java.lang.String
getName(java.lang.String path)
Get file name from pathstatic java.io.File
getRandomDir(java.lang.String dir, java.lang.String prefix)
Get a random directorystatic java.lang.String
getRandomDirname(java.lang.String dir, java.lang.String prefix)
Get a random directory namestatic java.io.File
getRandomFile(java.lang.String dir, java.lang.String prefix, java.lang.String extension)
Get a random filestatic java.lang.String
getRandomFilename(java.lang.String dir, java.lang.String prefix, java.lang.String extension)
Get a random file namestatic boolean
isEmpty(java.io.File dir)
Check if a directory is emptystatic boolean
isEmpty(java.lang.String dir)
Check if a directory is emptystatic java.lang.String
md5hash(java.io.File file)
Hexadeciaml MD5 hash of file or of all files of a directory if directorystatic java.lang.String
md5hash(java.io.File file, java.lang.String pattern)
Hexadeciaml MD5 hash of file or of all files of a directory if directorystatic boolean
mkdir(java.io.File dir, boolean clean)
Create directorystatic boolean
mkdir(java.lang.String dir, boolean clean)
Create directorystatic java.lang.String
readFile(java.io.File file)
Read file as Stringstatic java.lang.String
readFile(java.io.File file, java.lang.String encoding)
Read file as Stringstatic java.lang.String
readFile(java.lang.String path)
Read file as Stringstatic java.lang.String
readFile(java.lang.String path, java.lang.String encoding)
Read file as Stringstatic java.lang.String
readFileAsBase64(java.io.File file)
Read file as base64 stringstatic java.lang.String
readFileAsBase64(java.lang.String path)
Read file as base64 stringstatic byte[]
readFileAsBytes(java.io.File file)
Read file as byte arraystatic byte[]
readFileAsBytes(java.lang.String path)
Read file as byte arraystatic java.util.List<java.lang.String>
readFileByLine(byte[] data)
Read byte array line by linestatic java.util.List<java.lang.String>
readFileByLine(byte[] data, java.lang.String encoding)
Read byte array line by linestatic java.util.List<java.lang.String>
readFileByLine(java.io.File file)
Read file line by linestatic java.util.List<java.lang.String>
readFileByLine(java.io.File file, java.lang.String encoding)
Read file line by linestatic java.util.List<java.lang.String>
readFileByLine(java.io.File file, java.lang.String regex, int maxLines, java.lang.String encoding)
Read file line by line applying regex filterstatic java.util.List<java.lang.String>
readFileByLine(java.io.InputStream is)
Read input stream line by linestatic java.util.List<java.lang.String>
readFileByLine(java.io.InputStream is, java.lang.String encoding)
Read input stream line by linestatic java.util.List<java.lang.String>
readFileByLine(java.io.InputStream is, java.lang.String regex, int maxLines, java.lang.String encoding)
Read file line by line applying regex filterstatic java.util.List<java.lang.String>
readFileByLine(java.lang.String path)
Read file line by linestatic java.util.List<java.lang.String>
readFileByLine(java.lang.String path, java.lang.String encoding)
Read file line by linestatic java.util.List<java.lang.String>
readFileByLine(java.lang.String path, java.lang.String regex, int maxLines, java.lang.String encoding)
Read file line by line applying regex filterstatic long
sizeOfDirectory(java.io.File path)
Directory total size in bytesstatic long
sizeOfDirectory(java.lang.String path)
Directory total size in bytesstatic java.lang.String
toValidFilename(java.lang.String str)
Get a valid filename from an arbitrary stringstatic java.lang.String
toValidFilename(java.lang.String str, boolean removeInvalid, java.lang.String whitespaceSubstitution)
Get a valid filename from an arbitrary stringstatic java.lang.String
toValidFilename(java.lang.String str, java.lang.String replaceString, java.lang.String whitespaceSubstitution)
Get a valid filename from an arbitrary stringstatic boolean
writeFile(java.io.File file, byte[] data)
Write file with byte array datastatic boolean
writeFile(java.io.File file, byte[] data, boolean append)
Write file with byte array datastatic boolean
writeFile(java.io.File file, java.lang.String data)
Write file with string datastatic boolean
writeFile(java.io.File file, java.lang.String data, java.lang.String encoding)
Write file with string datastatic void
writeFile(java.io.InputStream is, java.io.File f)
Copy input stream into output stream, flush and closestatic void
writeFile(java.io.InputStream is, java.io.OutputStream out)
Copy input stream into output stream, flush and closestatic void
writeFile(java.io.InputStream is, java.io.OutputStream out, long limit)
Copy input stream into output stream, flush and closestatic boolean
writeFile(java.io.OutputStream os, byte[] data)
Write file with byte array datastatic boolean
writeFile(java.lang.String path, byte[] data)
Write file with byte array datastatic boolean
writeFile(java.lang.String path, byte[] data, boolean append)
Write file with byte array datastatic boolean
writeFile(java.lang.String path, java.lang.String data)
Write file with string datastatic boolean
writeFile(java.lang.String path, java.lang.String data, java.lang.String encoding)
Write file with string data
-
-
-
Field Detail
-
BUFFER_SIZE
public static final int BUFFER_SIZE
Buffer size- See Also:
- Constant Field Values
-
UPLOAD_SIZE_UNIT
public static final int UPLOAD_SIZE_UNIT
MAX_UPLOAD_SIZE unit = 1Mo- See Also:
- Constant Field Values
-
-
Method Detail
-
encode
public static java.lang.String encode(java.lang.String name)
Encode a name to become a File name: escape special characters (% / \ * ? " < > |) with %hexa value- Parameters:
name
- A name- Returns:
- Encoded file name
-
decode
public static java.lang.String decode(java.lang.String name)
Decode a File name to become a name- Parameters:
name
- A file name- Returns:
- Decoded name
-
readFile
public static java.lang.String readFile(java.lang.String path) throws java.io.IOException
Read file as String- Parameters:
path
- File path- Throws:
java.io.IOException
-
readFile
public static java.lang.String readFile(java.lang.String path, java.lang.String encoding) throws java.io.IOException
Read file as String- Parameters:
path
- File pathencoding
- File encoding- Throws:
java.io.IOException
-
readFile
public static java.lang.String readFile(java.io.File file) throws java.io.IOException
Read file as String- Parameters:
file
- File- Throws:
java.io.IOException
-
readFile
public static java.lang.String readFile(java.io.File file, java.lang.String encoding) throws java.io.IOException
Read file as String- Parameters:
file
- Fileencoding
- File encoding- Throws:
java.io.IOException
-
readFileAsBytes
public static byte[] readFileAsBytes(java.lang.String path) throws java.io.IOException
Read file as byte array- Parameters:
path
- File path- Throws:
java.io.IOException
-
readFileAsBytes
public static byte[] readFileAsBytes(java.io.File file) throws java.io.IOException
Read file as byte array- Parameters:
file
- File- Throws:
java.io.IOException
-
readFileAsBase64
public static java.lang.String readFileAsBase64(java.lang.String path) throws java.io.IOException
Read file as base64 string- Parameters:
path
- File path- Throws:
java.io.IOException
-
readFileAsBase64
public static java.lang.String readFileAsBase64(java.io.File file) throws java.io.IOException
Read file as base64 string- Parameters:
file
- File- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(java.lang.String path) throws java.io.IOException
Read file line by line- Parameters:
path
- File path- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(java.lang.String path, java.lang.String encoding) throws java.io.IOException
Read file line by line- Parameters:
path
- File pathencoding
- File encoding- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(java.io.File file) throws java.io.IOException
Read file line by line- Parameters:
file
- File- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(java.io.File file, java.lang.String encoding) throws java.io.IOException
Read file line by line- Parameters:
file
- Fileencoding
- File encoding- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(byte[] data) throws java.io.IOException
Read byte array line by line- Parameters:
data
- Byte array- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(byte[] data, java.lang.String encoding) throws java.io.IOException
Read byte array line by line- Parameters:
data
- Byte arrayencoding
- File encoding- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(java.io.InputStream is) throws java.io.IOException
Read input stream line by line- Parameters:
is
- Input stream- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(java.io.InputStream is, java.lang.String encoding) throws java.io.IOException
Read input stream line by line- Parameters:
is
- Input streamencoding
- File encoding- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(java.lang.String path, java.lang.String regex, int maxLines, java.lang.String encoding) throws java.io.IOException
Read file line by line applying regex filter- Parameters:
path
- File pathregex
- Regex to apply (if null or empty no filtering is done)maxLines
- Maximum nb lines returned (>0 means first lines <0 means last lines)encoding
- File encoding- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(java.io.File file, java.lang.String regex, int maxLines, java.lang.String encoding) throws java.io.IOException
Read file line by line applying regex filter- Parameters:
file
- Fileregex
- Regex to apply (if null or empty no filtering is done)maxLines
- Maximum nb lines returned (0 means all lines, >0 means first lines, <0 means last lines)encoding
- File encoding- Throws:
java.io.IOException
-
readFileByLine
public static java.util.List<java.lang.String> readFileByLine(java.io.InputStream is, java.lang.String regex, int maxLines, java.lang.String encoding) throws java.io.IOException
Read file line by line applying regex filter- Parameters:
is
- Input streamregex
- Regex to apply (if null or empty no filtering is done)maxLines
- Maximum nb lines returned (0 means all lines, >0 means first lines, <0 means last lines)encoding
- File encoding- Throws:
java.io.IOException
-
writeFile
public static boolean writeFile(java.lang.String path, java.lang.String data) throws java.io.IOException
Write file with string data- Parameters:
path
- File pathdata
- String data- Returns:
- true if file generation is OK
- Throws:
java.io.IOException
-
writeFile
public static boolean writeFile(java.lang.String path, java.lang.String data, java.lang.String encoding) throws java.io.IOException
Write file with string data- Parameters:
path
- File pathdata
- String dataencoding
- File encoding- Returns:
- true if file generation is OK
- Throws:
java.io.IOException
-
writeFile
public static boolean writeFile(java.io.File file, java.lang.String data) throws java.io.IOException
Write file with string data- Parameters:
file
- Filedata
- String data- Returns:
- true if file generation is OK
- Throws:
java.io.IOException
-
writeFile
public static boolean writeFile(java.io.File file, java.lang.String data, java.lang.String encoding) throws java.io.IOException
Write file with string data- Parameters:
file
- Filedata
- String dataencoding
- File encoding- Returns:
- true if file generation is OK
- Throws:
java.io.IOException
-
writeFile
public static boolean writeFile(java.lang.String path, byte[] data) throws java.io.IOException
Write file with byte array data- Parameters:
path
- File pathdata
- Byte array data- Returns:
- true if file generation is OK
- Throws:
java.io.IOException
-
writeFile
public static boolean writeFile(java.lang.String path, byte[] data, boolean append) throws java.io.IOException
Write file with byte array data- Parameters:
path
- File pathdata
- Byte array dataappend
- Append to file?- Returns:
- true if file generation is OK
- Throws:
java.io.IOException
-
writeFile
public static boolean writeFile(java.io.File file, byte[] data) throws java.io.IOException
Write file with byte array data- Parameters:
file
- Filedata
- Byte array data- Returns:
- true if file generation is OK
- Throws:
java.io.IOException
-
writeFile
public static boolean writeFile(java.io.File file, byte[] data, boolean append) throws java.io.IOException
Write file with byte array data- Parameters:
file
- Filedata
- Byte array dataappend
- Append to file?- Returns:
- true if file generation is OK
- Throws:
java.io.IOException
-
writeFile
public static boolean writeFile(java.io.OutputStream os, byte[] data) throws java.io.IOException
Write file with byte array data- Parameters:
os
- Output streamdata
- Byte array data- Returns:
- true if file generation is OK
- Throws:
java.io.IOException
-
copyFile
public static void copyFile(java.io.File src, java.io.File dest, boolean override) throws java.io.IOException
File copy- Parameters:
src
- Source filedest
- Destination fileoverride
- True to override if exists- Throws:
java.io.IOException
-
copyFile
public static void copyFile(java.lang.String srcPath, java.lang.String destPath, boolean override) throws java.io.IOException
File copy- Parameters:
srcPath
- Source file pathdestPath
- Destination file pathoverride
- True to override if exists- Throws:
java.io.IOException
-
writeFile
public static void writeFile(java.io.InputStream is, java.io.File f) throws java.io.IOException
Copy input stream into output stream, flush and close- Parameters:
is
- input streamf
- output file (override)- Throws:
java.io.FileNotFoundException
java.io.IOException
-
writeFile
public static void writeFile(java.io.InputStream is, java.io.OutputStream out)
Copy input stream into output stream, flush and close- Parameters:
is
- input streamout
- output stream
-
concatFiles
public static void concatFiles(java.io.InputStream[] is, java.io.OutputStream out)
Concat all input stream into output stream, flush and close- Parameters:
is
- input streamsout
- output stream
-
writeFile
public static void writeFile(java.io.InputStream is, java.io.OutputStream out, long limit) throws FileSizeException
Copy input stream into output stream, flush and close- Parameters:
is
- input streamout
- output streamlimit
- max size in Mo- Throws:
FileSizeException
-
deleteFileOrDir
public static boolean deleteFileOrDir(java.lang.String path)
Delete file or dir- Parameters:
path
- Path
-
deleteFileOrDir
public static boolean deleteFileOrDir(java.lang.String path, boolean silent)
Delete file or dir- Parameters:
path
- Pathsilent
- Don't log error
-
deleteFileOrDir
public static boolean deleteFileOrDir(java.io.File file)
Delete file or dir- Parameters:
file
- File
-
deleteFileOrDir
public static boolean deleteFileOrDir(java.io.File file, boolean silent)
Delete file or dir- Parameters:
file
- Filesilent
- Don't log error
-
cleanDir
public static boolean cleanDir(java.lang.String path)
Clean dir content- Parameters:
path
- Dir path
-
cleanDir
public static boolean cleanDir(java.io.File file)
Clean dir content- Parameters:
file
- Dir file
-
cleanDir
public static boolean cleanDir(java.lang.String path, boolean silent)
Clean dir content- Parameters:
path
- Dir pathsilent
- Don't log error
-
cleanDir
public static boolean cleanDir(java.io.File file, boolean silent)
Clean dir content- Parameters:
file
- Dir filesilent
- Don't log error
-
mkdir
public static boolean mkdir(java.io.File dir, boolean clean)
Create directory- Parameters:
dir
- Dirclean
- Delete dir content (if it exists)- Returns:
- True if both create and optional cleaning were successful
-
mkdir
public static boolean mkdir(java.lang.String dir, boolean clean)
Create directory- Parameters:
dir
- Dirclean
- Delete content (if it exists)- Returns:
- True if both create and optional cleaning were successful
-
getName
public static java.lang.String getName(java.lang.String path)
Get file name from path- Parameters:
path
- Path- Returns:
- File name
-
getExtension
public static java.lang.String getExtension(java.lang.String path)
Get file extension from path- Parameters:
path
- Path- Returns:
- File extension (lower case)
-
getExtension
public static java.lang.String getExtension(java.io.File file)
Get file extension from path- Parameters:
file
- Path- Returns:
- File extension (lower case)
-
sizeOfDirectory
public static long sizeOfDirectory(java.lang.String path)
Directory total size in bytes- Parameters:
path
- Start path- Returns:
- Total size in bytes
-
sizeOfDirectory
public static long sizeOfDirectory(java.io.File path)
Directory total size in bytes- Parameters:
path
- Start path file- Returns:
- Total size in bytes
-
getAllFiles
public static java.util.List<java.lang.String> getAllFiles(java.lang.String dir) throws java.io.IOException
List all files of dir- Parameters:
dir
- Directory- Throws:
java.io.IOException
-
getAllFiles
public static java.util.List<java.lang.String> getAllFiles(java.io.File dir) throws java.io.IOException
List all files of dir- Parameters:
dir
- Directory- Throws:
java.io.IOException
-
getAllFiles
public static java.util.List<java.lang.String> getAllFiles(java.lang.String dir, java.lang.String pattern, boolean sort) throws java.io.IOException
List all files of dir with optional pattern (returns an empty list if directory does not exists)- Parameters:
dir
- Directorypattern
- Optional regular expression pattern to match (e.g. "^.*\\.txt$")sort
- Sort list?- Throws:
java.io.IOException
-
getAllFiles
public static java.util.List<java.lang.String> getAllFiles(java.io.File dir, java.lang.String pattern, boolean sort) throws java.io.IOException
List all files of dir with optional pattern (returns an empty list if directory does not exists)- Parameters:
dir
- Directorypattern
- Optional regular expression pattern to match (e.g. "^.*\\.txt$")sort
- Sort list?- Throws:
java.io.IOException
-
getMIMEType
public static java.lang.String getMIMEType(java.lang.String path)
Get MIME type from file path- Parameters:
path
- Path
-
getMIMEType
public static java.lang.String getMIMEType(java.io.File file)
Get MIME type from file- Parameters:
file
- File
-
isEmpty
public static boolean isEmpty(java.lang.String dir)
Check if a directory is empty- Parameters:
dir
- Directory path (if relative, it is considered relative to project directory- Returns:
- true if directory exists, is a directory and is empty, false otherwise
-
isEmpty
public static boolean isEmpty(java.io.File dir)
Check if a directory is empty- Parameters:
dir
- Directory path (if relative, it is considered relative to project directory- Returns:
- true if directory exists, is a directory and is empty, false otherwise
-
md5hash
public static java.lang.String md5hash(java.io.File file) throws java.io.IOException
Hexadeciaml MD5 hash of file or of all files of a directory if directory- Parameters:
file
- File or directory- Returns:
- Hash string
- Throws:
java.io.IOException
-
md5hash
public static java.lang.String md5hash(java.io.File file, java.lang.String pattern) throws java.io.IOException
Hexadeciaml MD5 hash of file or of all files of a directory if directory- Parameters:
file
- File or directorypattern
- Optional file name regex pattern (e.g..*\\.txt
)- Returns:
- Hash string
- Throws:
java.io.IOException
-
getRandomDirname
public static java.lang.String getRandomDirname(java.lang.String dir, java.lang.String prefix)
Get a random directory name- Parameters:
dir
- Base directoryprefix
- Optional prefix- Returns:
- Random directory name
-
getRandomDir
public static java.io.File getRandomDir(java.lang.String dir, java.lang.String prefix)
Get a random directory- Parameters:
dir
- Base directoryprefix
- Optional prefix- Returns:
- Random directory
-
getRandomFilename
public static java.lang.String getRandomFilename(java.lang.String dir, java.lang.String prefix, java.lang.String extension)
Get a random file name- Parameters:
dir
- Base directoryprefix
- Optional prefixextension
- Optional extension- Returns:
- Random file name
-
getRandomFile
public static java.io.File getRandomFile(java.lang.String dir, java.lang.String prefix, java.lang.String extension)
Get a random file- Parameters:
dir
- Base directoryprefix
- Optional prefixextension
- Optional extension- Returns:
- Random file
-
toValidFilename
public static java.lang.String toValidFilename(java.lang.String str)
Get a valid filename from an arbitrary string- Parameters:
str
- String- Returns:
- Filename
-
toValidFilename
public static java.lang.String toValidFilename(java.lang.String str, boolean removeInvalid, java.lang.String whitespaceSubstitution)
Get a valid filename from an arbitrary string- Parameters:
str
- StringremoveInvalid
- Remove invalid characters?false
means replacing them by a substitution string like_cr_
for carriage returnwhitespaceSubstitution
- Whitespaces substitution stringnull
means replacing them by underscores, note that leading/trailing whithespaces are always removed- Returns:
- Filename
-
toValidFilename
public static java.lang.String toValidFilename(java.lang.String str, java.lang.String replaceString, java.lang.String whitespaceSubstitution)
Get a valid filename from an arbitrary string- Parameters:
str
- StringreplaceString
- optional string to replace all invalid characters (null will just remove the characters)whitespaceSubstitution
- optional whitespaces substitution (null keeps the whitespaces)- Returns:
- Filename without invalid characters
-
countFiles
public static long countFiles(java.lang.String dir) throws java.io.IOException
Count files in a directory- Parameters:
dir
- Directory path return Number of files in specified directory- Throws:
java.io.IOException
-
countFiles
public static long countFiles(java.io.File dir) throws java.io.IOException
Count files in a directory- Parameters:
dir
- Directory file return Number of files in specified directory- Throws:
java.io.IOException
-
countFiles
public static long countFiles(java.io.File dir, java.lang.String pattern) throws java.io.IOException
Count files in a directory with matching pattern- Parameters:
dir
- Directory filepattern
- Regular expression for file name matching (e.g."^.*\\.txt$"
) or null return Number of files in specified directory- Throws:
java.io.IOException
-
-