Java之IO流 File类

xiaoxiao2025-11-13  5

File

构造方法 * File(String pathname):根据一个路径得到File对象 * File(String parent, String child):根据一个目录和一个子文件/目录得到File对象 * File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象 * (注意一下文件路径中d的\\表示转义!! 不然读不了)

import java.io.File public class Demo1_File { public static void main(String[] args) { //demo1(); //demo2(); File parent = new File("F:\\双元课堂\\day19\\video"); String child = "001_今日内容.avi"; File file = new File(parent, child); System.out.println(file.exists()); System.out.println(parent.exists()); } public static void demo2() { String parent = "F:\\双元课堂\\day19\\video"; String child = "001_今日内容.avi"; File file = new File(parent,child); System.out.println(file.exists()); } public static void demo1() { File file = new File("F:\\双元课堂\\day19\\video\\001_今日内容.avi"); System.out.println(file.exists()); File file2 = new File("xxx.txt"); System.out.println(file2.exists()); File file3 = new File("yyy.txt"); System.out.println(file3.exists()); } }

File类常用功能 1.创建功能 * public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了 * public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了 * public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来 不要忘记抛出异常

import java.io.File; import java.io.IOException; public class Demo2_FileMethod { /** * * A:创建功能 * public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了 * public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了 * public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来 * B:案例演示 * File类的创建功能 * 注意事项: * 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。 * @throws IOException */ public static void main(String[] args) throws IOException { //demo1(); File dir1 = new File("aaa"); System.out.println(dir1.mkdir()); File dir2 = new File("bbb.txt"); //这样写是可以的,文件夹也是可以有后缀的 System.out.println(dir2.mkdir()); File dir3 = new File("ccc\\ddd"); System.out.println(dir3.mkdirs()); //创建多级目录 } public static void demo1() throws IOException { File file = new File("yyy.txt"); System.out.println(file.createNewFile()); //如果没有就创建,返回true File file2 = new File("zzz"); System.out.println(file2.createNewFile()); } }

2.常用功能 * * A:重命名和删除功能 * public boolean renameTo(File dest):把文件重命名为指定的文件路径 * public boolean delete():删除文件或者文件夹 * B:重命名注意事项 * 如果路径名相同,就是改名。 * 如果路径名不同,就是改名并剪切。 * C:删除注意事项: * Java中的删除不走回收站。 * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹 * 其实windows下也是这样 先遍历删除文件夹下的所有内容 最后再删除空的文件夹

import java.io.File; public class Demo3_FileMethod { public static void main(String[] args) { //demo1(); File file1 = new File("yyy.txt"); System.out.println(file1.delete()); File file2 = new File("aaa"); System.out.println(file2.delete()); File file3 = new File("ccc"); //如果删除一个文件夹,那么文件夹必须是空的 System.out.println(file3.delete()); } public static void demo1() { File file1 = new File("ooo.txt"); //改名并剪切。 File file2 = new File("D:\\xxx.txt"); System.out.println(file1.renameTo(file2)); } }

3.判断功能 * * A:判断功能 * public boolean isDirectory():判断是否是目录 * public boolean isFile():判断是否是文件 * public boolean exists():判断是否存在 * public boolean canRead():判断是否可读 * public boolean canWrite():判断是否可写 * public boolean isHidden():判断是否隐藏

import java.io.File; public class Demo4_FileMethod { /** * B:案例演示 * File类的判断功能 */ public static void main(String[] args) { //demo1(); File file = new File("zzz"); file.setReadable(false); System.out.println(file.canRead()); //windows系统认为所有的文件都是可读的 file.setWritable(true); System.out.println(file.canWrite()); //windows系统可以设置为不可写 File file2 = new File("aaa.txt"); System.out.println(file2.isHidden()); //判断是否是隐藏文件 System.out.println(file.isHidden()); } public static void demo1() { File dir1 = new File("ccc"); System.out.println(dir1.isDirectory()); //判断是否是文件夹 File dir2 = new File("zzz"); System.out.println(dir2.isDirectory()); System.out.println(dir1.isFile()); //判断是否是文件 System.out.println(dir2.isFile()); } } A:获取功能 public String getAbsolutePath():获取绝对路径public String getPath():获取路径public String getName():获取名称public long length():获取长度。字节数public long lastModified():获取最后一次的修改时间,毫秒值public String[] list():获取指定目录下的所有文件或者文件夹的名称数组public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组 import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; public class Demo5_FileMethod { public static void main(String[] args) { //demo1(); File dir = new File("F:/双元课堂/day19/video"); String[] arr = dir.list(); //仅为了获取文件名 for (String string : arr) { System.out.println(string); } File[] subFiles = dir.listFiles(); for (File file : subFiles) { //获取文件对象 System.out.println(file); } } public static void demo1() { File file1 = new File("ccc.txt"); File file2 = new File("D:\\双元课堂\\day19\\ccc.txt"); //System.out.println(file1.getAbsolutePath()); //获取绝对路径 //System.out.println(file2.getAbsolutePath()); //System.out.println(file1.getPath()); //获取构造方法中传入路径 //System.out.println(file2.getPath()); // System.out.println(file1.getName()); //获取文件或者文件的名字 // System.out.println(file2.getName()); // // System.out.println(file1.length()); Date d = new Date(file1.lastModified()); //文件的最后修改时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); System.out.println(sdf.format(d)); } }

File类小练习 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称 两种解法 1.普通解法 2.过滤器

import java.io.File; import java.io.FilenameFilter; public class Test3 { /** * @param args * * A:案例演示 * 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称 */ public static void main(String[] args) { File dir = new File("E:\\"); // String[] arr = dir.list(); //获取e盘下所有的文件或文件夹 // for (String string : arr) { // if(string.endsWith(".jpg")) { // System.out.println(string); // } // } /*File[] subFiles = dir.listFiles(); //获取e盘下所有的文件或文件夹对象 for (File subFile : subFiles) { if(subFile.isFile() && subFile.getName().endsWith(".jpg")) { System.out.println(subFile); } }*/ String[] arr = dir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { //System.out.println(dir); //System.out.println(name); File file = new File(dir, name); return file.isFile() && file.getName().endsWith(".jpg"); } }); for (String string : arr) { System.out.println(string); } } }
转载请注明原文地址: https://www.6miu.com/read-5039561.html

最新回复(0)