File类 操作文件或文件夹
来源:互联网 发布:plc编程师工资高吗 编辑:程序博客网 时间:2024/05/30 23:48
1、将文件系统中的文件或文件夹封装成对象,提供属性和方法对文件进行操作
2、方法:
creatNewFile();创建文件,若存在则不创建,返回false。(输出流则是有无都创建)
boolean mkdir();创建一级文件夹;mkdirs();创建多级文件夹
boolean delete();删除文件;deleteOnExit()程序结束前删除文件
boolean canExecute():是否可被执行;boolean exists():文件是否存在
boolean isFile():是否是文件;isDirectory():是否是文件夹
boolean isHidden():是否是隐藏文件;isAbsolute():路径是否是绝对路径
String getName():文件名;String getPath():相对路径
String getParent():绝对路径的父目录,无则返回null,有上一级则返回上一级
String getAbsolutePath():获取绝对路径
boolean renameTo(File dest);:对文件重命名为dest
String[] list():列出当前目录所有文件名。目录必须存在
File[] list(FileNameFilter filter):对指定文件进行过滤,需实现FileNameFilter文件名过滤器
File[] listFiles():获取当前文件夹下的文件和文件夹
/** * File类 * @author Administrator * */import java.io.*;public class FileDeom1{ public static void main(String[] args) {consMethod(); } //创建File对象 public static void consMethod() {//将a.txt封装成file对象,可以将已有的和未出现的文件或文件夹封装成对象File f1 = new File("a.txt");//第二种方式, 可以将文件名封装 好处 文件名可以为变量 File f2 = new File("c:\\abc","b.txt");//第三种 将路径封装File d = new File("c\\abc");File f3 = new File(d,"c.txt");sop("f1:" + f1);sop("f2:" + f2);sop("f3:" + f3);//File.separator 是路径分割符 可以跨平台File f4 = new File("c:"+File.separator +"abc" +File.separator +"zzz" + File.separator +"a.txt");sop("f4:" + f4); } public static void sop(Object obj) {System.out.println(obj); } }
***************************************************邪恶的分割线**********************************************************************************************************************
import java.io.*;/** * File类常见方法: * 1, 创建, * boolean createNewFile(): 在指定位置创建文件,如果该文件已经存在, * 则不创建,返回false。和输出流不一样,输出流对象一定建立创建文件。 * 而且文件已经存在,会覆盖。 * * boolean mkdir(): 创建文件夹 * * boolean mkdirs(); 创建多级文件夹 * 2, 删除。 * boolean delete(): 删除失败返回false 删除指定文件 * void deleteOnExit():在程序退出时删除指定文件。 * * 3,判断。 * boolean existe(): 判断文件是否存在 * ifFile(): 判断是否是文件 * isDirectory(): 判断是否为文件夹 * isHidden(): 判断是否为隐藏文件 * * 4 获取信息。 * * getName();获取文件或目录的名称 * getPath();获取路径名 转换为路径字符串 * getParent(); 返回路径名父目录的路径名字符串,如果没有有返回null * * getAbsolutePath():获取绝对路径(返回字符串) * lastModified(): 获取最后一次修改的时间 * length() 文件大小 * * @author Administrator * */public class FileDemo2{ public static void main(String[] args) throws IOException {//method_1();//method_2();//method_3();//method_4();//method_5();method_6(); } public static void method_1()throws IOException//调用底层要抛异常 {//创建文件对象File f = new File("file.txt");//程序退出的时候删除指定文件 这里是对象f.deleteOnExit();//建立文件 返回boolean类型//sop("create :" + f.createNewFile());//删除指定文件 返回boolean类型sop("delete: " + f.delete()); } public static void method_2() {File f = new File("file.txt");//判断文件是否存在sop("existe:" + f.exists());//判断文件是否能执行//sop("execute:" + f.canExecute()); } public static void method_3() {//创建文件夹, mkdir最多创建一级目录File dir = new File("abc\\kk");sop("mkdir: " + dir.mkdir());//创建多级文件夹 dir.mkdirs()//sop("mkdir: " + dir.mkdirs()); } public static void method_4() {File f = new File("file.txt");//判断文件对象是否是文件或者目录时,必须要先判断该文件//对象的内容是否存在 通过,exists判断//判断是否目录(文件夹)sop("dir:" + f.isDirectory());//判断是否是文件sop("file" + f.isFile()); } public static void method_5() {File f = new File("file.txt");//获取相对路径sop("path:" + f.getPath());//获取绝对路径sop("abspath" + f.getAbsolutePath());//该方法返回的是绝对路径父目录,如果获取的是相对路径,返回nullsop("parent:" + f.getParent()); } public static void method_6() {//建立对象File f1 = new File("D:/Student/java/test/demo.txt");File f2 = new File("D:/Student/java/test/demo2.txt");//改变文件的名字 将demo.txt 变成demo2.txtsop("rename: " + f1.renameTo(f2)); } public static void sop(Object obj) {System.out.println(obj); } }
***************************************************邪恶的分割线**********************************************************************************************************************
import java.io.File;//listRoots 列出可用的文件系统根。//list 列出指定目录下的所有可用文件//listFiles(FileFilter filter) public class FielDemo3{ public static void main(String[] args) {//listRootsDemo();listDemo(); } //列出机器里面的有效盘符 public static void listRootsDemo() {File[] files = File.listRoots();for(File f: files){ System.out.println(f);} } //c盘下的目录 相当于dos 下 的 dir指令,不过可以看到隐藏文件 public static void listDemo() {//只在c盘下File f = new File("c:\\");//调用list方法中的file对象必须封装了了一个目录,该目录必须存在String[] names = f.list();//for循环增强 for(String name : names){ System.out.println(name);} }}
***************************************************邪恶的分割线**********************************************************************************************************************
/** * 列出目录文件下 .java 的所有文件 文件名过滤 * @author Administrator * */import java.io.*;public class FileDemo4{ public static void main(String[] args) {method_1();//method_2(); } public static void method_1() {File dir = new File("D:\\Student\\java\\test");// 将目录的文件给字符串数组 、、传的是匿名内部类String[] arr = dir.list(new FilenameFilter(){ public boolean accept(File dir, String name) {// return true;/* * if(name.endsWith(".bmp")) { return true; } return false; */// endWith 方法 返回结尾是否是参数里的真假return name.endsWith(".java"); }});System.out.println("len:" + arr.length);// for循环增强 输出目录中文件for (String name : arr){ System.out.println(name);} } //第二种 使用listFiles 经常用这种 public static void method_2() {File dir = new File("D:\\Student\\java\\test");File[] files = dir.listFiles();for(File f : files){ System.out.println(f.getName() + ":" + f.length());} }}
***************************************************邪恶的分割线**********************************************************************************************************************
/** * 需求:列出指定目录下文件或者文件夹,包含子目录的内容。 * 也就是列出指定目录下所有内容(使用递归的方法) * @author Administrator * */import java.io.*;public class FileDemo5{ public static void main(String[] args) {// 创建文件对象File dir = new File("D:/Student/java/test");showDir(dir); } public static void showDir(File dir) {// 提前打印出是哪个目录的System.out.println(dir);// 将文件对象传递给 文件数组 filesFile[] files = dir.listFiles();for (File f : files){ // 如果是目录 递归调用 if (f.isDirectory()) {showDir(f); } else {System.out.println(f); }} }}
***************************************************邪恶的分割线**********************************************************************************************************************
/** * 需求:删除一个带内容的目录 * 删除原理: * 在window中,删除目录是从里面往外删除的。 * * 既然是从里面往外删除,就需要用到递归。 * * @author Administrator * */import java.io.*;public class FileDemo6{ public static void main(String[] args) {File dir = new File("D:\\Student\\java\\Test2\\test");removeDir(dir); } // 删除文件 public static void removeDir(File dir) {File[] files = dir.listFiles();for (File f : files){ // 如果删除的是目录 那么递归调用删除方法 if (f.isDirectory()) {removeDir(f); } // 如果是文件那么删除 else {System.out.println(f.toString() + "::" + f.delete()); } // 一次递归结束 删除文件夹 System.out.println(dir + "::dir::" + dir.delete());} }}
***************************************************邪恶的分割线**********************************************************************************************************************
/** * 需求: 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。 * * 建立一个java文件列表 * * 思路: * 1, 对指定的额目录进行递归。 * 2, 获取递归过程所有的java文件的路径。 * 3, 将这些路径存储到集合中。 * 4, 将集合中的数据写入到一个文件中。 * * @author Administrator * */import java.io.*;import java.util.*;public class FileDemo7{ public static void main(String[] args) throws IOException {//文件路径封装成对象File dir = new File("D:/Student/java");//创建集合List<File> list = new ArrayList<File>();fileToList(dir, list);// System.out.println(list.size());File file = new File(dir, "javalist.txt");writeToFile(list, file.toString()); } // 传递 参数 为: 一个是文件对象, 一个是容器list public static void fileToList(File dir, List<File> list) {// 将所有文件对象给 文件数组 filesFile[] files = dir.listFiles();// 对文件数组进行遍历for (File f : files){ // 判断是否目录 if (f.isDirectory()) {// 如果是目录 递归调用fileToList(f, list); } else // 不是目录0 {// 获取名字 判断扩展名if (f.getName().endsWith(".java")) ;list.add(f);// 如果是java文件存入容器中 }} } // 把容器中的数据写入到文件 public static void writeToFile(List<File> list, String javaListFile) {// 定义写入缓冲流BufferedWriter bufw = null;try{ // 将缓冲流写入 这里包装了一下 bufw = new BufferedWriter(new FileWriter(javaListFile)); for (File f : list) {// 循环的将路径名赋值给 字符串 pathString path = f.getAbsolutePath();// 写入文件bufw.write(path);// 换行bufw.newLine();// 刷新缓冲区bufw.flush(); }} catch (IOException e){ e.printStackTrace();} finally{ try {// 关闭流bufw.close(); } catch (IOException e) {e.printStackTrace(); }} }}
***************************************************邪恶的分割线**********************************************************************************************************************
改名字,把.java改成.jad
import java.io.File;public class RemoveFileTest{ public static void main(String[] args) {File source = new File("d:/jad");File[] files = source.listFiles();for(File f : files){ String name = f.getName(); String newName = name.replace(".java", ".jad"); File oldFile = new File(source,name); File newFile = new File(source,newName); boolean t =oldFile.renameTo(newFile); System.out.print(t);} }}
- File类 操作文件或文件夹
- File各种类操作文件、文件夹
- java:File类中对文件或目录进行操作的常用方法以及遍历文件夹下面的文件
- java对文件或文件夹的操作
- 加快文件或文件夹打开操作速度
- QT获取文件或文件夹操作
- Unity操作移动设备文件或文件夹
- python 移动文件或文件夹操作
- CFileDialog打开文件或文件夹操作
- python 移动文件或文件夹操作
- File I\O 使用File类操作文件或目录属性
- File类文件操作
- File类文件操作
- File 文件类操作
- File类--文件操作
- 文件操作类:File
- 使用java.nio.file.WatchService监控文件夹里的文件再操作文件出现的“文件不存在或目录不存在”的错误
- PHP file操作类 判断文件或目录是否存在 复制删除文件等
- TCP滑动窗口机制
- Poj 2249 Binomial Showdown
- C语言的预编译
- iOS学习笔记31—appStore检查版本更新与从app里跳到appstore评论页面
- java学习笔记07—IO流
- File类 操作文件或文件夹
- sscanf函数的用法
- 反射内存介绍
- windows 多线程 消息队列
- syslog:类Unix系统常用的log服务
- 《黑马程序员》java笔记->集合List中:ArrayList,LinkedList,及队列设计例子
- rsyncd.conf配置文件
- java基础知识加强(一)
- 思维导图