文件的IO(输入/输出) 和 文件系统
1.File类
1)File类可以使用文件路径字符串来创建File实例,
1 import java.io.File; 2 3 import java.io.IOException; 4 5 public class Test1 { 6 public static void main(String[] args) throws IOException { 7 File file = new File("D:\\javatest\\d.txt"); 8 9 System.out.println(file.canExecute());// 查看当前仅当抽象路径名是否存在,且允许程序执行文件,如果存在返回 10 // true 11 System.out.println(file.canRead());// 查看当前路径是否存在且可以写入,存在,返回true 12 13 file.createNewFile();//创建一个当前路径文件 14 15 file.delete();//删除当前路径文件 16 17 } 18 }
注意:创建一个文件时:会抛出:IOException
- 可能发生 I/O 错误 。
2)File的路径
1 import java.io.File; 2 3 public class Test01 { 4 public static void main(String[] args) { 5 System.out.println(File.pathSeparator);//输出 ; 号,是路径分隔符(这里Windows平台下,Linux系统和Mac系统平台的路径分割符是 :号) 6 7 System.out.println(File.separator);//输出 \ 反斜杠,是名称分隔符(这里Windows平台下,Linux系统和Mac系统平台的路径分割符是 / 正斜杠) 8 } 9 10 }
1 import java.io.File; 2 import java.io.IOException; 3 4 public class Test2 { 5 public static void main(String[] args) throws IOException { 6 // File file = new File("D:\\javatest\\c.txt"); 7 8 // 用名称路径分隔符创建File对象 9 File file = new File("D:" + File.separator + "javatest" + File.separator + "c.txt");//等同效果 D:\\javatest\\c.txt 建议使用 10 System.out.println(file); 11 12 /* 13 * 出现IOException运行时异常 14 * if (!file.exists()) { 15 16 boolean r; 17 try { 18 r = file.createNewFile(); 19 if (r) { 20 System.out.println("文件创建成功"); 21 } 22 } catch (IOException e) { 23 e.printStackTrace(); 24 } 25 }*/ 26 27 file.createNewFile(); 28 System.out.println("文件创建成功"); 29 } 30 }
3)目录的创建和遍历
1 import java.io.File; 2 3 public class Test1 { 4 public static void main(String[] args) { 5 File file = new File("D:\\javatest\\c\\b"); 6 file.mkdir(); 7 /*如果javatest路径下没有c路径目录,也没有c\\路径目录; 8 * 路径创建失败,mkdir一次只能创建一个目录。 9 * */ 10 file.mkdirs();//可以创建此抽象路径名指定的目录,包括所有必需但不存在的父目录 11 12 } 13 14 }
① 目录的遍历:
list():返回一个字符串数组,表示该file的目录中的子目录或者文件。
listFiles():返回一个file路径名数组,表示该file的目录中的子目录或者文件。
1 import java.io.File; 2 3 public class Teset2 { 4 public static void main(String[] args) { 5 // 遍历目录 6 File file = new File("D:" + File.separator + "javatest");// 效果等同D:\javatest 7 8 File[] listFiles = file.listFiles(); 9 for (File f : listFiles) { 10 System.out.print(f.getName()); 11 12 if (f.isDirectory()) { 13 System.out.println(" 目录"); //用isDirectory()判断是否为目录 14 } else { 15 System.out.println(" 文件"); 16 } 17 } 18 } 19 }