org.nutz.lang
类 Files

java.lang.Object
  继承者 org.nutz.lang.Files

public abstract class Files
extends java.lang.Object

文件操作的帮助函数

作者:
amos(amosleaf@gmail.com), zozoh(zozohtnt@gmail.com), wendal(wendal1985@gmail.com), bonyfish(mc02cxj@gmail.com)

构造方法摘要
Files()
           
 
方法摘要
static void appendWrite(java.io.File f, java.lang.Object obj)
          将内容写到一个文件末尾 InputStream - 按二进制方式写入 byte[] - 按二进制方式写入 Reader - 按 UTF-8 方式写入 其他对象被 toString() 后按照 UTF-8 方式写入
static void cleanAllFolderInSubFolderes(java.io.File dir, java.lang.String name)
          将一个目录下的特殊名称的目录彻底删除,比如 '.svn' 或者 '.cvs'
static boolean clearDir(java.io.File dir)
          清除一个目录里所有的内容
static boolean copy(java.io.File src, java.io.File target)
          自动决定是 copy 文件还是目录
static boolean copyDir(java.io.File src, java.io.File target)
          拷贝一个目录
static boolean copyFile(java.io.File src, java.io.File target)
          拷贝一个文件
static java.io.File createDirIfNoExists(java.lang.String path)
          试图生成一个目录对象,如果文件不存在则创建它。
static java.io.File createFileIfNoExists(java.lang.String path)
          试图生成一个文件对象,如果文件不存在则创建它。
static boolean createNewFile(java.io.File f)
          创建新文件,如果父目录不存在,也一并创建。
static boolean deleteDir(java.io.File dir)
          强行删除一个目录,包括这个目录下所有的子目录和文件
static boolean deleteFile(java.io.File f)
          删除一个文件
static java.io.File[] dirs(java.io.File dir)
          获取一个目录下所有子目录。
static boolean equals(java.io.File f1, java.io.File f2)
          判断两个文件内容是否相等
static java.io.File[] files(java.io.File dir, java.lang.String suffix)
          获取一个目录下所有的文件(不递归,仅仅一层)。
static java.util.zip.ZipEntry[] findEntryInZip(java.util.zip.ZipFile zip, java.lang.String regex)
          根据正则式,从压缩文件中获取文件
static java.io.File findFile(java.lang.String path)
          从 CLASSPATH 下或从指定的本机器路径下寻找一个文件
static java.io.File findFile(java.lang.String path, java.lang.ClassLoader klassLoader)
          从 CLASSPATH 下或从指定的本机器路径下寻找一个文件
static java.io.File findFile(java.lang.String path, java.lang.ClassLoader klassLoader, java.lang.String enc)
          从 CLASSPATH 下或从指定的本机器路径下寻找一个文件
static java.io.File findFile(java.lang.String path, java.lang.String enc)
          从 CLASSPATH 下或从指定的本机器路径下寻找一个文件
static java.io.InputStream findFileAsStream(java.lang.String path)
          获取输出流
static java.io.InputStream findFileAsStream(java.lang.String path, java.lang.Class<?> klass)
          获取输出流
static java.io.InputStream findFileAsStream(java.lang.String path, java.lang.Class<?> klass, java.lang.String enc)
          获取输出流
static java.io.InputStream findFileAsStream(java.lang.String path, java.lang.String enc)
          获取输出流
static java.io.File getFile(java.io.File dir, java.lang.String path)
          在一个目录下,获取一个文件对象
static java.lang.String getMajorName(java.io.File f)
          获取文件主名。
static java.lang.String getMajorName(java.lang.String path)
          获取文件主名。
static java.lang.String getName(java.lang.String path)
           
static java.lang.String getParent(java.lang.String path)
           
static java.lang.String getSuffixName(java.io.File f)
          获取文件后缀名,不包括 '.'
static java.lang.String getSuffixName(java.lang.String path)
          获取文件后缀名,不包括 '.'
static boolean isDirectory(java.io.File f)
          文件对象是否是目录,可接受 null
static boolean isEquals(java.io.File f1, java.io.File f2)
          精确比较两个文件是否相等
static boolean isFile(java.io.File f)
          文件对象是否是文件,可接受 null
static boolean makeDir(java.io.File dir)
          创建新目录,如果父目录不存在,也一并创建。
static boolean move(java.io.File src, java.io.File target)
          将文件移动到新的位置
static java.lang.String read(java.io.File f)
          读取 UTF-8 文件全部内容
static java.lang.String read(java.lang.String path)
          读取 UTF-8 文件全部内容
static byte[] readBytes(java.io.File f)
          读取文件全部字节,并关闭文件
static byte[] readBytes(java.lang.String path)
          读取文件全部字节,并关闭文件
static boolean rename(java.io.File src, java.lang.String newName)
          将文件改名
static java.lang.String renamePath(java.lang.String path, java.lang.String newName)
          修改路径
static java.io.File renameSuffix(java.io.File f, java.lang.String suffix)
          将文件后缀改名,从而生成一个新的文件对象。
static java.lang.String renameSuffix(java.lang.String path, java.lang.String suffix)
          将文件路径后缀改名,从而生成一个新的文件路径。
static java.io.File[] scanDirs(java.io.File dir)
          递归查找获取一个目录下所有子目录(及子目录的子目录)。
static void write(java.io.File f, java.lang.Object obj)
          将内容写到一个文件内,内容对象可以是: InputStream - 按二进制方式写入 byte[] - 按二进制方式写入 Reader - 按 UTF-8 方式写入 其他对象被 toString() 后按照 UTF-8 方式写入
static void write(java.lang.String path, java.lang.Object obj)
          将内容写到一个文件内,内容对象可以是: InputStream - 按二进制方式写入 byte[] - 按二进制方式写入 Reader - 按 UTF-8 方式写入 其他对象被 toString() 后按照 UTF-8 方式写入
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Files

public Files()
方法详细信息

read

public static java.lang.String read(java.lang.String path)
读取 UTF-8 文件全部内容

参数:
path - 文件路径
返回:
文件内容

read

public static java.lang.String read(java.io.File f)
读取 UTF-8 文件全部内容

参数:
f - 文件
返回:
文件内容

readBytes

public static byte[] readBytes(java.lang.String path)
读取文件全部字节,并关闭文件

参数:
path - 文件路径
返回:
文件的字节内容

readBytes

public static byte[] readBytes(java.io.File f)
读取文件全部字节,并关闭文件

参数:
f - 文件
返回:
文件的字节内容

write

public static void write(java.lang.String path,
                         java.lang.Object obj)
将内容写到一个文件内,内容对象可以是:

参数:
path - 文件路径,如果不存在,则创建
obj - 内容对象

write

public static void write(java.io.File f,
                         java.lang.Object obj)
将内容写到一个文件内,内容对象可以是:

参数:
f - 文件
obj - 内容

appendWrite

public static void appendWrite(java.io.File f,
                               java.lang.Object obj)
将内容写到一个文件末尾

参数:
f - 文件
obj - 内容

renameSuffix

public static java.io.File renameSuffix(java.io.File f,
                                        java.lang.String suffix)
将文件后缀改名,从而生成一个新的文件对象。但是并不在磁盘上创建它

参数:
f - 文件
suffix - 新后缀, 比如 ".gif" 或者 ".jpg"
返回:
新文件对象

renameSuffix

public static java.lang.String renameSuffix(java.lang.String path,
                                            java.lang.String suffix)
将文件路径后缀改名,从而生成一个新的文件路径。

参数:
path - 文件路径
suffix - 新后缀, 比如 ".gif" 或者 ".jpg"
返回:
新文件后缀

getMajorName

public static java.lang.String getMajorName(java.lang.String path)
获取文件主名。 即去掉后缀的名称

参数:
path - 文件路径
返回:
文件主名

getMajorName

public static java.lang.String getMajorName(java.io.File f)
获取文件主名。 即去掉后缀的名称

参数:
f - 文件
返回:
文件主名

getSuffixName

public static java.lang.String getSuffixName(java.io.File f)
获取文件后缀名,不包括 '.',如 'abc.gif',',则返回 'gif'

参数:
f - 文件
返回:
文件后缀名

getSuffixName

public static java.lang.String getSuffixName(java.lang.String path)
获取文件后缀名,不包括 '.',如 'abc.gif',',则返回 'gif'

参数:
path - 文件路径
返回:
文件后缀名

findEntryInZip

public static java.util.zip.ZipEntry[] findEntryInZip(java.util.zip.ZipFile zip,
                                                      java.lang.String regex)
根据正则式,从压缩文件中获取文件

参数:
zip - 压缩文件
regex - 正则式,用来匹配文件名
返回:
数组

createFileIfNoExists

public static java.io.File createFileIfNoExists(java.lang.String path)
                                         throws java.io.IOException
试图生成一个文件对象,如果文件不存在则创建它。 如果给出的 PATH 是相对路径 则会在 CLASSPATH 中寻找,如果未找到,则会在用户主目录中创建这个文件

参数:
path - 文件路径,可以以 ~ 开头,也可以是 CLASSPATH 下面的路径
返回:
文件对象
抛出:
java.io.IOException - 创建失败

createDirIfNoExists

public static java.io.File createDirIfNoExists(java.lang.String path)
试图生成一个目录对象,如果文件不存在则创建它。 如果给出的 PATH 是相对路径 则会在 CLASSPATH 中寻找,如果未找到,则会在用户主目录中创建这个目录

参数:
path - 文件路径,可以以 ~ 开头,也可以是 CLASSPATH 下面的路径
返回:
文件对象

findFile

public static java.io.File findFile(java.lang.String path,
                                    java.lang.ClassLoader klassLoader,
                                    java.lang.String enc)
从 CLASSPATH 下或从指定的本机器路径下寻找一个文件

参数:
path - 文件路径
klassLoader - 参考 ClassLoader
enc - 文件路径编码
返回:
文件对象,如果不存在,则为 null

findFile

public static java.io.File findFile(java.lang.String path,
                                    java.lang.String enc)
从 CLASSPATH 下或从指定的本机器路径下寻找一个文件

参数:
path - 文件路径
enc - 文件路径编码
返回:
文件对象,如果不存在,则为 null

findFile

public static java.io.File findFile(java.lang.String path,
                                    java.lang.ClassLoader klassLoader)
从 CLASSPATH 下或从指定的本机器路径下寻找一个文件

参数:
path - 文件路径
klassLoader - 使用该 ClassLoader进行查找
返回:
文件对象,如果不存在,则为 null

findFile

public static java.io.File findFile(java.lang.String path)
从 CLASSPATH 下或从指定的本机器路径下寻找一个文件

参数:
path - 文件路径
返回:
文件对象,如果不存在,则为 null

findFileAsStream

public static java.io.InputStream findFileAsStream(java.lang.String path,
                                                   java.lang.Class<?> klass,
                                                   java.lang.String enc)
获取输出流

参数:
path - 文件路径
klass - 参考的类, -- 会用这个类的 ClassLoader
enc - 文件路径编码
返回:
输出流

findFileAsStream

public static java.io.InputStream findFileAsStream(java.lang.String path,
                                                   java.lang.String enc)
获取输出流

参数:
path - 文件路径
enc - 文件路径编码
返回:
输出流

findFileAsStream

public static java.io.InputStream findFileAsStream(java.lang.String path,
                                                   java.lang.Class<?> klass)
获取输出流

参数:
path - 文件路径
klass - 参考的类, -- 会用这个类的 ClassLoader
返回:
输出流

findFileAsStream

public static java.io.InputStream findFileAsStream(java.lang.String path)
获取输出流

参数:
path - 文件路径
返回:
输出流

isDirectory

public static boolean isDirectory(java.io.File f)
文件对象是否是目录,可接受 null


isFile

public static boolean isFile(java.io.File f)
文件对象是否是文件,可接受 null


createNewFile

public static boolean createNewFile(java.io.File f)
                             throws java.io.IOException
创建新文件,如果父目录不存在,也一并创建。可接受 null 参数

参数:
f - 文件对象
返回:
false,如果文件已存在。 true 创建成功
抛出:
java.io.IOException

makeDir

public static boolean makeDir(java.io.File dir)
创建新目录,如果父目录不存在,也一并创建。可接受 null 参数

参数:
dir - 目录对象
返回:
false,如果目录已存在。 true 创建成功
抛出:
java.io.IOException

deleteDir

public static boolean deleteDir(java.io.File dir)
强行删除一个目录,包括这个目录下所有的子目录和文件

参数:
dir - 目录
返回:
是否删除成功

deleteFile

public static boolean deleteFile(java.io.File f)
删除一个文件

参数:
f - 文件
返回:
是否删除成功
抛出:
java.io.IOException

clearDir

public static boolean clearDir(java.io.File dir)
清除一个目录里所有的内容

参数:
dir - 目录
返回:
是否清除成功

copyFile

public static boolean copyFile(java.io.File src,
                               java.io.File target)
                        throws java.io.IOException
拷贝一个文件

参数:
src - 原始文件
target - 新文件
返回:
是否拷贝成功
抛出:
java.io.IOException

copy

public static boolean copy(java.io.File src,
                           java.io.File target)
自动决定是 copy 文件还是目录

参数:
src - 源
target - 目标
返回:
是否 copy 成功

copyDir

public static boolean copyDir(java.io.File src,
                              java.io.File target)
                       throws java.io.IOException
拷贝一个目录

参数:
src - 原始目录
target - 新目录
返回:
是否拷贝成功
抛出:
java.io.IOException

move

public static boolean move(java.io.File src,
                           java.io.File target)
                    throws java.io.IOException
将文件移动到新的位置

参数:
src - 原始文件
target - 新文件
返回:
移动是否成功
抛出:
java.io.IOException

rename

public static boolean rename(java.io.File src,
                             java.lang.String newName)
将文件改名

参数:
src - 文件
newName - 新名称
返回:
改名是否成功

renamePath

public static java.lang.String renamePath(java.lang.String path,
                                          java.lang.String newName)
修改路径

参数:
path - 路径
newName - 新名称
返回:
新路径

getParent

public static java.lang.String getParent(java.lang.String path)
参数:
path - 路径
返回:
父路径

getName

public static java.lang.String getName(java.lang.String path)
参数:
path - 全路径
返回:
文件或者目录名

cleanAllFolderInSubFolderes

public static void cleanAllFolderInSubFolderes(java.io.File dir,
                                               java.lang.String name)
                                        throws java.io.IOException
将一个目录下的特殊名称的目录彻底删除,比如 '.svn' 或者 '.cvs'

参数:
dir - 目录
name - 要清除的目录名
抛出:
java.io.IOException

isEquals

public static boolean isEquals(java.io.File f1,
                               java.io.File f2)
精确比较两个文件是否相等

参数:
f1 - 文件1
f2 - 文件2
返回:
  • true: 两个文件内容完全相等
  • false: 任何一个文件对象为 null,不存在 或内容不相等

getFile

public static java.io.File getFile(java.io.File dir,
                                   java.lang.String path)
在一个目录下,获取一个文件对象

参数:
dir - 目录
path - 文件相对路径
返回:
文件

dirs

public static java.io.File[] dirs(java.io.File dir)
获取一个目录下所有子目录。子目录如果以 '.' 开头,将被忽略

参数:
dir - 目录
返回:
子目录数组

scanDirs

public static java.io.File[] scanDirs(java.io.File dir)
递归查找获取一个目录下所有子目录(及子目录的子目录)。子目录如果以 '.' 开头,将被忽略

包含传入的目录

参数:
dir - 目录
返回:
子目录数组

files

public static java.io.File[] files(java.io.File dir,
                                   java.lang.String suffix)
获取一个目录下所有的文件(不递归,仅仅一层)。隐藏文件会被忽略。

参数:
dir - 目录
suffix - 文件后缀名。如果为 null,则获取全部文件
返回:
文件数组

equals

public static boolean equals(java.io.File f1,
                             java.io.File f2)
判断两个文件内容是否相等

参数:
f1 - 文件对象
f2 - 文件对象
返回:
  • true: 两个文件内容完全相等
  • false: 任何一个文件对象为 null,不存在 或内容不相等