FileUtils
来源:互联网 发布:怪物猎人x数据库 编辑:程序博客网 时间:2024/05/21 17:12
/* * file name: FileUtil.java * copyright: Unis Cloud Information Technology Co., Ltd. Copyright 2015, All rights reserved * description: <description> * mofidy staff: zheng * mofidy time: 2015年10月10日 */package com.utils;import java.io.File;import java.io.FileFilter;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.nio.file.Files;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.Iterator;import java.util.List;import org.apache.commons.io.FileUtils;import org.apache.commons.io.FilenameUtils;import org.apache.commons.io.LineIterator;import org.apache.commons.lang.CharSetUtils;/** * General file manipulation utilities. * * Facilities are provided in the following areas: * <ul> * <li>writing to a file * <li>reading from a file * <li>make a directory including parent directories * <li>copying files and directories * <li>deleting files and directories * <li>converting to and from a URL * <li>listing files and directories by filter and extension * <li>comparing file content * <li>file last changed date * <li>calculating a checksum * * @author zheng * @version [version, 2015年10月10日] * @see [about class/method] * @since [product/module version] */public class FileUtil { public static void main(String[] args) throws IOException { //get the path of file File file = FileUtils.getFile("/Users/zheng/zhengTest/lalala.txt"); File file1 = FileUtils.getFile(new File("/Users/zheng/zhengTest"), "lalala.txt"); //get the file,if not exist then create ; if exist then delete File file2 = new File("/Users/zheng/zhengTest/ttt.txt"); if(!file2.exists()){ file2.createNewFile(); } if(file.getName().equals("ttt.txt")){ file2.delete(); } //get the path and URI of file file2.toPath(); //--/Users/zheng/zhengTest/ttt.txt file2.toURI(); //--file:/Users/zheng/zhengTest/ttt.txt //the path to the system/user temporary directory. String path = FileUtils.getTempDirectoryPath(); File file3 = FileUtils.getTempDirectory(); String path2 = FileUtils.getUserDirectoryPath(); File file4 = FileUtils.getUserDirectory(); //创建FileInputStream实例对象时,指定的文件应当是存在和可读的。 //Opens a FileInputStream for the specified file, providing better error messages than simply calling new FileInputStream(file) FileInputStream inputStream = FileUtils.openInputStream(new File("/Users/zheng/zhengTest/ttt.txt")); byte[] bytes = new byte[inputStream.available()]; //新建一个字节数组 //char[] buf = new char[1024]; --字符流Reader类和Writer类使用 int length = inputStream.read(bytes); //将文件中的内容读取到字节数组中 inputStream.close(); String s = new String(bytes, 0, length); //再将字节数组中的内容转化成字符串形式输出 //创建FileOutputStream实例对象时,如果指定的文件已经存在,这个文件中的原来内容将被覆盖清除(但不能指定一个已被其他程序打开了的文件). //Opens a FileOutputStream for the specified file, checking and creating the parent directory if it does not exist. FileOutputStream outputStream = FileUtils.openOutputStream(new File("/Users/zheng/zhengTest/tt.txt")); outputStream.write(bytes, 0, length); outputStream.close(); //Implements the same behaviour as the "touch" utility on Unix. //It creates a new file with size 0 or, if the file exists already, it is opened and closed without modifying it, but updating the file date and time. FileUtils.touch(new File("/Users/zheng/zhengTest/tt.txt")); //把相应的文件集合转换成文件数组convertFileCollectionToFileArray(Collection<File> files) //根据一个过滤规则获取一个目录下的文件innerListFiles(Collection<File> files, File directory,IOFileFilter filter) //根据一个IOFileFilter过滤规则获取一个目录下的文件集合listFiles( File directory, IOFileFilterfileFilter, IOFileFilter dirFilter) //把指定的字符串数组变成后缀名格式字符串数组toSuffixes(String[] extensions) //Finds files within a given directory (and optionally its subdirectories) which match an array of extensions. String[] extensions = {"txt","sh"}; Collection<File> files1 = FileUtils.listFiles(new File("/Users/zheng/zhengTest"), extensions, true); for(File f : files1){ System.out.println(f.getName()); } //查找一个目录下面符合对应扩展名的文件的集合的迭代器Iterator<File> iterateFiles( File directory, String[]extensions, boolean recursive) //Allows iteration over the files in a given directory (and optionally its subdirectories) which match an array of extensions. //This method is based on {@link #listFiles(File, String[], boolean)},which supports Iterable ('foreach' loop). Iterator<File> files2 = FileUtils.iterateFiles(new File("/Users/zheng/zhengTest"), extensions, true); while(files2.hasNext()){ System.out.println(files2.next().getName()); } //Compares the contents of two files to determine if they are equal or not. boolean flag = FileUtils.contentEquals(new File("/Users/zheng/zhengTest/tt.txt"), new File("/Users/zheng/zhengTest/ttt.txt")); //这里使用了charsetName,用以获取编码后的字符流 boolean flag1 = FileUtils.contentEqualsIgnoreEOL(new File("/Users/zheng/zhengTest/tt.txt"), new File("/Users/zheng/zhengTest/ttt.txt"), "UTF-8"); //Convert from a URL to a File File file5 = FileUtils.toFile(new URL("file:///Users/zheng/zhengTest/ttt.txt")); //Converts each of an array of File to a URL File[] files3 = new File[1]; files3[0] = new File("/Users/zheng/zhengTest/ttt.txt"); URL[] urls = FileUtils.toURLs(files3); for(URL url : urls){ System.out.println(url); } //Copies a file to a directory preserving the file date. FileUtils.copyFileToDirectory(new File("/Users/zheng/zhengTest/ttt.txt"), new File("/Users/zheng")); FileUtils.copyFileToDirectory(new File("/Users/zheng/zhengTest/ttt.txt"), new File("/Users/zheng/test"), true); //Copies a file to a new location preserving the file date. FileUtils.copyFile(new File("/Users/zheng/zhengTest/ttt.txt"), new File("/Users/zheng/zhengTest/tttaaa.txt")); FileUtils.copyFile(new File("/Users/zheng/zhengTest/ttt.txt"), new File("/Users/zheng/zhengTest/tttaaa.txt"), true); //Copy bytes from a File to an OutputStream long length1 = FileUtils.copyFile(new File("/Users/zheng/zhengTest/tt.txt"),new FileOutputStream("lalala")); //Copies bytes from an InputStream source to a file FileUtils.copyInputStreamToFile(new FileInputStream(new File("/Users/zheng/zhengTest/abc.txt")), new File("/Users/zheng/zhengTest/ttt.txt")); //Copies a directory to within another directory preserving the file dates. --copy文件夹到某个文件夹 FileUtils.copyDirectoryToDirectory(new File("/Users/zheng/zhengTest"), new File("/Users/zheng/shanchu")); //Copies a whole directory to a new location preserving the file dates. --copy文件夹下的内容到某个文件夹 FileUtils.copyDirectory(new File("/Users/zheng/zhengTest"), new File("/Users/zheng/shanchu")); FileUtils.copyDirectory(new File("/Users/zheng/zhengTest"), new File("/Users/zheng/shanchu"), true); //Copies bytes from the URL source to a file FileUtils.copyURLToFile(new URL("file:///Users/zheng/zhengTest/ttt.txt"), new File("/Users/zheng/zhengTest/xsa.txt")); FileUtils.copyURLToFile(new URL("file:///Users/zheng/zhengTest/ttt.txt"), new File("/Users/zheng/zhengTest/xsa.txt"), 1000, 2000); //Deletes a directory recursively. FileUtils.deleteDirectory(new File("/Users/zheng/zhengTest/haha")); //Schedules a directory recursively for deletion on JVM exit. FileUtils.deleteDirectoryOnExit(new File("/Users/zheng/zhengTest/haha")); //Deletes a file, never throwing an exception. If file is a directory, delete it and all sub-directories. FileUtils.deleteQuietly(new File("/Users/zheng/zhengTest/haha")); //Deletes a file. If file is a directory, delete it and all sub-directories. FileUtils.forceDelete(new File("/Users/zheng/zhengTest")); //Schedules a file to be deleted when JVM exits. If file is directory delete it and all sub-directories. FileUtils.forceDeleteOnExit(new File("/Users/zheng/zhengTest")); //Determines whether the {@code parent} directory contains the {@code child} element (a file or directory). boolean flag2 = FileUtils.directoryContains(new File("/Users/zheng/zhengTest"), new File("/Users/zheng/zhengTest/xsaa.txt")); //Cleans a directory without deleting it. FileUtils.cleanDirectory(new File("/Users/zheng/zhengTest/haha")); //Cleans a directory without deleting it. FileUtils.cleanDirectoryOnExit(new File("/Users/zheng/zhengTest/haha")); //Waits for NFS to propagate a file creation, imposing a timeout. //This method repeatedly tests {@link File#exists()} until it returns true up to the maximum time specified in seconds. //public static boolean waitFor(File file, int seconds) //Reads the contents of a file into a String. The file is always closed. String str = FileUtils.readFileToString(new File("/Users/zheng/zhengTest/ttt.txt"), "UTF-8"); //Reads the contents of a file into a byte array. The file is always closed. //public static byte[] readFileToByteArray(File file); //Reads the contents of a file line by line to a List of Strings. The file is always closed. List<String> list = FileUtils.readLines(new File("/Users/zheng/zhengTest/ttt.txt"),"UTF-8"); for(String str2:list){ System.out.println(str2); } //Returns an Iterator for the lines in a <code>File //This method opens an <code>InputStream</code> for the file.When you have finished with the iterator you should close the stream //to free internal resources. This can be done by calling the {@link LineIterator#close()} or {@link LineIterator#closeQuietly(LineIterator)} method. LineIterator lineIterator = FileUtils.lineIterator(new File("/Users/zheng/zhengTest/ttt.txt"), "UTF-8"); try { while (lineIterator.hasNext()) { System.out.println(lineIterator.nextLine()); } }finally{ LineIterator.closeQuietly(lineIterator); } //Writes a String to a file creating the file if it does not exist. //NOTE: As from v1.3, the parent directories of the file will be created if they do not exist. FileUtils.writeStringToFile(new File("/Users/zheng/zhengTest/ttt.txt"), "qwe123", "UTF-8"); //Writes a String to a file creating the file if it does not exist. //append if {@code true}, then the String will be added to the end of the file rather than overwriting FileUtils.writeStringToFile(new File("/Users/zheng/zhengTest/ttt.txt"), "456789", "UTF-8", true); //Writes the <code>toString()</code> value of each item in a collection to the specified <code>File</code> line by line, optionally appending. //The specified character encoding and the default line ending will be used. List<String> list1 = new ArrayList<String>(); list1.add("123"); list1.add("456"); list1.add("789"); FileUtils.writeLines(new File("/Users/zheng/zhengTest/ttt.txt"), "UTF-8", list1, false); //Makes a directory, including any necessary but nonexistent parent directories. //If a file already exists with specified name but it is not a directory then an IOException is thrown. //If the directory cannot be created (or does not already exist) then an IOException is thrown. public static void forceMkdir(File directory); //Checks that the given {@code File} exists and is a directory. private static void checkDirectory(File directory); //Tests if the specified <code>File</code> is newer than the specified Date. public static boolean isFileNewer(File file, Date date) ; //Tests if the specified <code>File</code> is older than the specified Date public static boolean isFileOlder(File file, Date date); //Tests if the specified <code>File</code> is newer than the reference File. boolean flag6 = FileUtils.isFileNewer(new File("/Users/zheng/zhengTest/tt.txt"), new File("/Users/zheng/zhengTest/ttt.txt")); //Tests if the specified <code>File</code> is newer than the reference File public static boolean isFileNewer(File file, File reference); //Tests if the specified <code>File</code> is older than the reference File public static boolean isFileOlder(File file, File reference); //Tests if the specified <code>File</code> is newer than the specified time reference. public static boolean isFileNewer(File file, long timeMillis) //Tests if the specified <code>File</code> is older than the specified time reference. public static boolean isFileOlder(File file, long timeMillis); //Moves a directory.When the destination directory is on another file system, do a "copy and delete". FileUtils.moveDirectory(new File("/Users/zheng/zhengTest/haha"), new File("/Users/zheng/zhengTest/123/haha")); //Moves a file to another directory. //@param createDestDir If {@code true} create the destination directory,otherwise if {@code false} throw an IOException public static void moveDirectoryToDirectory(File src, File destDir, boolean createDestDir); //Moves a file to a directory. public static void moveFileToDirectory(File srcFile, File destDir, boolean createDestDir) //Moves a file or directory to the destination directory. When the destination is on another file system, do a "copy and delete". public static void moveToDirectory(File src, File destDir, boolean createDestDir); //Moves a file. When the destination file is on another file system, do a "copy and delete". FileUtils.moveFile(new File("/Users/zheng/zhengTest/tt.txt"), new File("/Users/zheng/zhengTest/123/tt.txt")); /** * Returns the size of the specified file or directory. If the provided * {@link File} is a regular file, then the file's length is returned. * If the argument is a directory, then the size of the directory is * calculated recursively. If a directory or subdirectory is security * restricted, its size will not be included. */ long size = FileUtils.sizeOf(new File("/Users/zheng/zhengTest/ttt.txt")); //Counts the size of a directory recursively (sum of the length of all files). long size1 = FileUtils.sizeOf(new File("/Users/zheng/zhengTest")); /** * Determines whether the specified file is a Symbolic Link rather than an actual file. * Will not return true if there is a Symbolic Link anywhere in the path, * only if the specific file is. * <b>Note:</b> the current implementation always returns {@code false} if the system * is detected as Windows using {@link FilenameUtils#isSystemWindows()} */ public static boolean isSymlink(File file); }}
0 0
- FileUtils
- FileUtils
- FileUtils
- FileUtils
- FileUtils
- FileUtils
- FileUtils
- FileUtils
- FileUtils
- FileUtils
- FileUtils
- FileUtils
- FileUtils
- FileUtils---FileUtils介绍
- FILEUTILS 介绍
- FileUtils API
- FileUtils @ IO
- FILEUTILS 介绍
- cocoaPods的配置与使用
- 【Web Design】课堂笔记
- Codeforces#305-C-Soldier and Cards-暴力模拟-deque
- 【黑马程序员】【Foundation框架】Automatic Reference Count(ARC)
- LA3357 Pinary
- FileUtils
- hdu 1556 Color the ball
- HDU 2203 亲和串
- SQLite的优化方案
- mysql宽字符注入
- SQLite 按照日期分组
- 黑马程序员——Gui
- ubuntu安装配置JDK(亲测)
- iOS简介