黑马程序员_Java基础_IO(3)

来源:互联网 发布:淘宝网人工在线客服 编辑:程序博客网 时间:2024/05/01 23:54
---------------------- Android、Java开发期待与您交流! ----------------------

               File类

         输入流和输出流可以对文件的原始内容进行读写操作,但仅限于文件。

         File类是IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容,操作的对象为磁盘上的文件和目录

         File类定义了一些方法来操纵文件,例如:创建、删除文件及重命名文件
         File类可以修改文件或目录的属性,例如:修改读写权限、更改文件最后被修改的时间、设置文件和目录的所有者或所有用户的执行权限等
         boolean createNewFile():当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。文件已存在返回false,不存在则返回true
         boolean mkdir():只能创建一级目录
         boolean mkdirs():可以一此创建多级目录
         boolean isDirectory():测试此抽象路径名表示的文件是否是一个目录
         boolean isFile():测试此抽象路径名表示的文件是否是一个文件,和测试是否是目录方法一样,在判断之前先执行boolean exists()方法
         boolean delete(): 删除此抽象路径名表示的文件或目录(只能删除空的目录)
         void deleteOnExit():在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 
         static File[] listRoots(): 列出可用的文件系统根
         File[] listFiles():返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。(只能遍历一级目录)
         static String separator:与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.FilenameFilter;import java.io.IOException;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;public class FileRelative {/** * @param args */public static void main(String[] args) throws IOException {// printFilePath();// fileBaseOp();File file = new File("c:\\FileRelative.java");//创建抽象路径名所对应的文件file.createNewFile();// getFileProperties(file);getFileInfo(file);File dir = new File("c:\\new File");//ergodicFile(file);//removeDir(dir);rename();    dir = new File("d:\\workspace\\notepad");List<File> list = new ArrayList<File>();// fileToList(dir, list);File file2 = new File(dir, "listToTxt.txt");listToTxt(list, file2);}/** * 创建File对象的几种方式(但并不实际生成相应的目录或文件) */public static void printFilePath() {File dir = new File("c:\\new File\\heima\\io");File file1 = new File("c:\\new File\\heima\\io", "1.part");File file2 = new File("c:\\new File\\heima\\io\\2.part");File file3 = new File(dir, "3.part");File file4 = new File("d:" + File.separator+ "new File\\heima\\io\\4.part");System.out.println(dir);System.out.println(file1);System.out.println(file2);System.out.println(file3);System.out.println(file4);}/** * 新建文件和目录 *  * @throws IOException */public static void fileBaseOp() throws IOException {// 通过creatNewFile()新建文件boolean flag = false;File file = new File("c:\\new File\\heima\\io\\test");flag = file.mkdir();System.out.println("mkdir:" + flag);flag = file.mkdirs();System.out.println("mkdirs:" + flag);// 删除// detletOnExit:file or directory is deleted when virtual machineflag = file.delete();System.out.println("delete:" + flag);flag = file.exists();System.out.println("exists:" + flag);file = new File("c:\\new file\\heima\\io\\testFile.txt");for (int i = 0; i < 2; i++) {flag = file.createNewFile();System.out.println("createNewFile:" + flag);flag = file.exists();System.out.println("exists:" + flag);}}/** * 获取获得抽象路径名所对应的文件或目录的属性 *  * @param file *            标准文件或目录 * @throws IOException */public static void getFileProperties(File file) throws IOException {boolean flag = true;flag = file.exists();// 检查file对象对应的文件是否存在System.out.println("file.exists():" + flag);// 判断文件是否可执行flag = file.canExecute();System.out.println("canExecute:" + flag);// 判断文件是否可写flag = file.canWrite();System.out.println("canWrite:" + flag);// 判断文件是否可读flag = file.canRead();System.out.println("canRead:" + flag);// 判断文件是否隐藏flag = file.isHidden();System.out.println("isHidden:" + flag);// 判断抽象路径名表示的文件是否是一个标准文件flag = file.isFile();System.out.println("isFile:" + flag);// 判断抽象路径名表示的文件是否是一目录flag = file.isDirectory();System.out.println("isDirectory:" + flag);// 判断此抽象路径名是否为绝对路径flag = file.isAbsolute();System.out.println("isAbsolute:" + flag);}/** * 获取抽象路径名所对应的文件或目录的信息 * @param file * @throws IOException */public static void getFileInfo(File file) throws IOException {// FileNameString name = file.getName();System.out.println("name:" + name);// getPathString path = file.getPath();System.out.println("path:" + path);// getAbsolutePathString absPath = file.getAbsolutePath();System.out.println("absPath:" + absPath);// getParentPathString parPath = file.getParent();System.out.println("parPath:" + parPath);// lengthlong length = file.length();System.out.println("length:" + length);// lastModifiedlong time = file.lastModified();// getTotalSpacelong space = file.getTotalSpace();System.out.println("space:" + space);if (space > 1024 * 1024) {space = space / 1024 / 1024;System.out.println("space:" + space + "MB");} else {System.out.println("space:" + space);}String lastModified = DateFormat.getInstance().format(new Date(time));System.out.println("lastModified:" + lastModified);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");lastModified = sdf.format(new Date(time));System.out.println("lastModified:" + lastModified);}/** * 给文件重命名 *  * @throws IOException */public static void rename() throws IOException {boolean flag = false;File file = new File("d:\\workspace\\notepad\\day20\\name.txt");flag = file.createNewFile();System.out.println("file.createNewFile:" + flag);File file1 = new File("d:\\workspace\\notepad\\day20\\rename.txt");flag = file.renameTo(file1);System.out.println("file.renameTo:" + flag);}//遍历目录public static void ergodicFile(File file) {File[] filesList = file.listFiles();for (File file1 : filesList) {if (file1.isDirectory()) {ergodicFile(file1);} else {System.out.println(file1);}}}//级联删除目录public static void removeDir(File dir) {File[] filesList = dir.listFiles();for (File file1 : filesList) {if (file1.isDirectory()) {removeDir(file1);} else {file1.delete();}}dir.delete();}//过滤获得指定格式文件并添加到集合public static void fileToList(File dir, List<File> list) {File[] files = dir.listFiles();for (File file1 : files) {if (file1.isDirectory()) {fileToList(file1, list);} else {if (file1.toString().endsWith(".java")) {list.add(file1);}}}}public static void listToTxt(List<File> list, File file) throws IOException {BufferedWriter bfw = null;try {bfw = new BufferedWriter(new FileWriter(file));for (File file1 : list) {String absPath = file1.getAbsolutePath();bfw.write(absPath);bfw.newLine();bfw.flush();}} catch (Exception e) {throw e;} finally {try {if (bfw != null) {bfw.close();}} catch (Exception e) {throw e;}}}}



---------------------- Android、Java开发期待与您交流! ----------------------
0 0
原创粉丝点击