Java文件操作的学习总结:
1.文件
1.标准文件:就像图片,音乐文件等。
2.目录文件:也就是平常所说的文件夹。
3.虚拟内存文件:系统在运行程序时生成的临时性文件。
2.文件的路径
1.相对路径:相对于某一文件的路径,形象地说是把两文件的绝对路径相同的部分砍掉,剩下的就是相对路径
如:
A文件是"D:\My Documents\StudySample\src\cn\xmh",
B文件是"D:\My Documents\StudySample\src\netjava\cjl",
则B相对A的路径是"\netjava\cjl";
2.绝度路径:从磁盘根目录算起的路径名
如:"G:\TDDOWNLOAD\数据结构"。
3.File是一个类,位于java.io包中。我们可以用File类创建文件对象,并对文件对象进行各种操作,如读写数据。
4.File类中的构造器以及各种方法
1.构造器
1.最常用的一种,根据字符串型的路径名创建文件对象
File(String pathname)
示例:
String path = "D:\\My Documents\\StudySample"; java.io.File file = new java.io.File(path);
2.在一个父目录对象下面创建一个名字为child的文件对象,child为要创建的文件的名字
File(File parent,String child)//这里的parent是File类型的,也就是说它是文件对象
File(String parent,String child)//这里的parent是String类型的,它代表的是父目录的路径
2.文件对象操作方法
1.exists():判断File对象指向的文件是否存在,返回一个boolean类型的值,true或者false。
2.isDirectory():判断File对象指向的文件是否为目录,返回一个boolean类型的值,true或者false。
3.isFile():判断File对象指向的文件是否是标准文件,返回一个boolean类型的值,true或者false。
4.getName():获取文件的名字(不带文件的路径),返回的是String类型的值。
5.length():得到File对象指向文件的长度,以字节计算,返回一个长整形的值(long);
注意:在系统中,文件夹(目录)的大小为零,也就是不占用空间,使用length()时返回的是0
6.mkdir():根据File对象的名字(路径)创建一个目录(文件夹),如果是相对目录,则新建的目录在当前目录下
如在工程StudySample中运行
String path = "study";
java.io.File file = new java.io.File(path);
file.createNewFile();
这样就会在StudySample目录下创建一个名为"study"的文件夹(目录)。
如果已经存在同名的文件,则抛出异常信息。
7.mkdirs():如果File对象名字有多级目录,则可以调用该方法一次性创建多级目录。
8.createNewFile():用来创建标准文件的方法
如下示例:
String path = "D:\\My Documents\\StudySample\\test.txt"; java.io.File file = new java.io.File(path); file.createNewFile();
这样就会在"D:\My Documents\StudySample"目录下创建一个名为"test.txt"的记事本。
9.delete():调用该方法可以删除File对象所指向的文件。
5.文件的操作实例:
import java.io.File; public class FileExercise { /** * @param args */ public static void main(String[] args) throws Exception { System.out.println("当前操作系统的名称分隔符是:" + java.io.File.separator); System.out.println("当前操作系统的路径分隔符是:" + java.io.File.pathSeparator); // 字符串类型的文件名 String fileName = "xiong.txt"; // 实例化文件对象 java.io.File file = new java.io.File("src", fileName); java.io.File file1 = new java.io.File( "D:\\My Documents\\StudySample\\src\\xiong"); java.io.File file2 = new java.io.File( "D:\\My Documents\\StudySample\\src"); // 创建一个文件 file.createNewFile(); boolean b;// 申明一个boolean类型的变量 // 测试应用程序是否可以执行该文件 b = file.canExecute(); System.out.println("测试应用程序是否可以执行该文件" + b); // 测试用用程序是否可以读取该文件 b = file.canRead(); System.out.println("测试用用程序是否可以读取该文件" + b); // 测试用用程序是否可以修改该文件 b = file.canWrite(); System.out.println("测试用用程序是否可以修改该文件" + b); // 测试此抽象路径名表示的文件或目录是否存在。 b = file.exists(); System.out.println("测试此抽象路径名表示的文件或目录是否存在" + b); // 按字母顺序比较两个抽象路径名 int i = file.compareTo(file1); System.out.println(i); String path; // 返回此抽象路径名的绝对路径名字符串 path = file.getAbsolutePath(); System.out.println(path); // 返回此抽象路径名的规范路径名字符串 path = file.getCanonicalPath(); System.out.println(path); long free; // 返回此抽象路径名指定的分区中未分配的字节数 free = file.getFreeSpace(); System.out.println("此抽象路径名指定的分区中未分配的字节数" + free); // 返回由此抽象路径名表示的文件或目录的名称 String name; name = file.getName(); System.out.println(name); name = file1.getName(); System.out.println(name); // 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null String parentpath; parentpath = file.getParent(); System.out.println(parentpath); parentpath = file1.getParent(); System.out.println(parentpath); // 返回此抽象路径名指定的分区上可用于此虚拟机的字节数 free = file.getUsableSpace(); System.out.println("此抽象路径名指定的分区上可用于此虚拟机的字节数" + free); // 计算此抽象路径名的哈希码 i = file.hashCode(); System.out.println(i); // 测试此抽象路径名是否为绝对路径名 b = file.isAbsolute(); System.out.println("file对象的抽象路径名是否为绝对路径名:" + b); b = file1.isAbsolute(); System.out.println("file1对象的抽象路径名是否为绝对路径名:" + b); // 返回此抽象路径名表示的文件最后一次被修改的时间 long time = file.lastModified(); System.out.println(time); // 返回由此抽象路径名表示的文件的长度 long length = file.length(); System.out.println("文件的长度:" + length); // list()-->返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录 String[] array = file2.list(); for (i = 0; i < array.length; i++) { System.out.println(array[i]); } // listFiles()-->返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件 java.io.File[] array1 = file2.listFiles(); for (i = 0; i < array1.length; i++) { System.out.println(array1[i]); } // listRoots()-->列出可用的文件系统根,静态方法 java.io.File[] roots = File.listRoots(); for (i = 0; i < roots.length; i++) { System.out.println(roots[i]); } // 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 // file.deleteOnExit(); //创建此抽象路径名指定的目录 file1.mkdir(); //重新命名此抽象路径名表示的文件 java.io.File file4 = new java.io.File("src\\重命名文件"); System.out.println(file1.renameTo(file4)); //设置文件只读 file.setReadOnly(); //设置文件可写 file.setWritable(true); } }