文件操作——File

来源:互联网 发布:党规党纪面前知敬畏守 编辑:程序博客网 时间:2024/06/05 22:45
1.使用File访问一个文件或目录的属性信息

long length = file.length();——> 当前File对象所表示的文件所占用的字节量

package day04;import java.io.File;/** * test.txt * java.io.File * File表示操作系统中文件系统里的一个文件或目录 * 使用File可以: * 1:访问一个文件或目录的属性信息 * 2:操作一个文件或目录(创建,删除) * 3:访问一个目录的子项 * 但是不能使用File访问文件数据。 * @author soft01 * */public class FileDemo {public static void main(String[] args) {/* * 在创建File的时候书写路径尽量使用相对路径。避免平台差异性。 * 目录层级分隔符应当使用File提供的一个常量:File.separator *  * 常见的相对路径: * 1".":表示当前目录,当前目录视运行环境不同路径也不同。 * 在eclipse中运行java程序时的当前目录是当前类所在项目的根目录 * 2类加载路径 */File file = new File("."+File.separator+"test.txt");String name = file.getName();System.out.println(name);long length = file.length();System.out.println(length);boolean canRead =file.canRead();//可读boolean canWrite =file.canWrite();//可写System.out.println("可读:"+canRead);System.out.println("可写:"+canWrite);boolean isHidden = file.isHidden();System.out.println("是否为隐藏文件:"+isHidden);}}

2.使用File创建一个新文件(文件创建在你的项目文件里面)

package day04;import java.io.File;import java.io.IOException;/** * 使用File创建一个新文件 * @author soft01 * */public class File_createNewFile {public static void main(String[] args) throws IOException {/* * 在当前目录下创建一个名为demo.txt的文件 */File file = new File("."+File.separator+"demo.txt");/* * boolean exists() * 判断当前File表示的文件或目录是否真实存在 */if(!file.exists()) {//创建该文件file.createNewFile();System.out.println("该文件创建完毕!");}else {System.out.println("该文件已存在!");}}}

3.使用File创建一个新文件目录
file.exists()——> 判断该名字命名的文件或目录是否存在

package day04;import java.io.File;/** * 创建一个目录 * @author soft01 * */public class File_mkdir {public static void main(String[] args) {/* * 在当前目录中创建一个名为demo的目录 */File dir = new File("demo");if(!dir.exists()) {dir.mkdir();System.out.println("创建完毕!");}else {System.out.println("该目录已存在!");}}}

4.使用File创建一个多级目录a/b/c/d/e/f

package day04;import java.io.File;/** * 创建一个多级目录 * @author soft01 * */public class File_mkdirs {public static void main(String[] args) {/* * 在当前目录中创建 * a/b/c/d/e/f */File dir = new File("a"+File.separator+"b"+File.separator+"c"+File.separator+"d"+File.separator+"e"+File.separator+"f");if(!dir.exists()) {/* * mkdirs是在创建当前File表示的目录 * 同时将该目录其上的所有不存在的父目录一同创建出来 */dir.mkdirs();System.out.println("创建完毕!");}else {System.out.println("该目录已存在!");}}}

5.使用File删除一个文件
file.delete();——> 删除文件

package day04;import java.io.File;/** * 删除一个文件 * @author soft01 * */public class File_delete {public static void main(String[] args) {/* * 将当前目录中的demo.txt文件删除 * 相对路径默认是从“当前目录”开始 * 所以 * new File("demo.txt") * 等同 * new File("./demo.txt) */File file = new File("demo.txt");if(file.exists()) {file.delete();System.out.println("删除完毕!");}else {System.out.println("该文件不存在!");}}}


6.使用File删除一个目录

package day04;import java.io.File;/** * 删除一个目录 * @author soft01 * */public class File_delete2 {public static void main(String[] args) {/* * 将当前目录的demo目录删除 */File dir = new File("demo");if(dir.exists()) {/* * delete方法在删除目录的时候需要注意,只能删除空目录。 */dir.delete();System.out.println("目录已删除!");}else {System.out.println("该目录不存在!");}}}

7.使用File获取一个目录中的所有子项
boolean isFile()——> 判断当前File表示的是否为一个文件
boolean isDirectory()——> 判断当前File表示的是否为一个目录

package day04;import java.io.File;/** * 获取一个目录中的所有子项 * @author soft01 * */public class File_listFiles {public static void main(String[] args) {/* * 获取当前目录中的所有子项 */File dir = new File(".");/* * boolean isFile() * 判断当前File表示的是否为一个文件 *  * boolean isDirectory() * 判断当前File表示的是否为一个目录 */if(dir.isDirectory()) {/* * File[] listFiles() * 获取当前目录中的所有子项 */File[] subs = dir.listFiles();System.out.println("subs:"+subs);for(int i=0;i<subs.length;i++) {File sub = subs[i];if(sub.isDirectory()) {System.out.print("目录:");}if(sub.isFile()) {System.out.print("文件:");}System.out.println(sub.getName());}}}}

8.使用File获取一个目录中的符合条件的子项

package day04;import java.io.File;import java.io.FileFilter;/** * File提供了一个重载的listFiles方法 * 该方法允许我们传入一个文件过滤器FileFilter * 该方法会将File表示的目录中所有满足过滤器要求的子项返回, * 而不满足的则被忽略。 * @author soft01 * */public class File_listFiles2 {public static void main(String[] args) {/* * 获取当前目录中所有名字以"."开头的子项 */File dir = new File(".");FileFilter filter = new FileFilter() {public boolean accept(File file) {String name = file.getName();System.out.println("正在过滤子项;"+name);return name.startsWith(".");}};File[] subs = dir.listFiles(filter);for(int i=0;i<subs.length;i++) {System.out.println(subs[i].getName());}}}/*class MyFilter implements FileFilter{public boolean accept(File file) {String name = file.getName();System.out.println("正在过滤子项;"+name);return name.startsWith(".");}}*/

9.使用File删除给定的File表示的文件或目录

package day04;import java.io.File;/** * 练习:删除给定的File表示的文件或目录 * @author soft01 * */public class Test01 {public static void main(String[] args) {File dir = new File("a");delete(dir);}public static void delete(File f) {if(f.isDirectory()) {//先将该目录中所有子项删除File[] subs = f.listFiles();//获取当前目录的所有子项System.out.println(subs);for(int i=0;i<subs.length;i++) {File sub = subs[i];delete(sub);//递归调用}}f.delete();}}

原创粉丝点击