一、文件的创建
使用File类创建文件对象,通常有三种方式:
File f1=new File(String pathname); //String pathname指的是路径名字,可以是绝对路径也可以是相对路径
File f2=new File(String parent,String child); //父路径字符串和子路径字符串
File f3=new File(File fn,String child); //父路径对象和子路径字符串,File fn需要事先声明
package ...;
public class TestFile {
public static void main(String[] args) {
// 绝对路径
File f1 = new File("d:/LOLFolder");
// 相对路径,相对于工作目录,如果在eclipse中,就是项目目录
File f2 = new File("LOL.exe");
// 把f1作为父目录创建文件对象
File f3 = new File(f1, "LOL.exe");
}
}
二、文件常用方法 java File类|菜鸟教程
我总结为三类方法:
①文件属性
②文件判断
③文件操作
①文件属性(名字、路径、长度、修改时间)
File.getName() //获取文件名称
File.getAbsolutePath() //获取文件绝对路径
File.Length() //获取文件的长度(以字节为单位)
File.lastModified() //获取文件最后修改时间
②文件判断(是否存在、是否为文件夹、是否为目录)
File.exits() //判断文件是否存在
File.isFile() //判断是否是文件夹
File.isDirectory() //判断是否是目录
③文件操作(改名字、删除文件、创建文件、以字符串数组或者文件数组返回所有文件)
File.renameTo() //需要先生成另一个文件对象,File f2=new File(...);然后f1.renameTo(f2);
File.list() //以字符串数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
File.listFiles() //以文件数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
字符串数组:String fa[]=f.list();
文件数组:File fa[]=f.listFiles();
File.delete() //删除文件
File.mkdirs() //创建文件夹,如果父文件夹不存在,就会创建父文件夹
File.createNewFile() //创建一个空文件,如果父文件夹不存在,就会抛出异常
import java.io.File;
public class DirList {
public static void main(String args[]) {
String dirname = "/java";
File f1 = new File(dirname); //即File f1=new File("/java");
if (f1.isDirectory()) {
System.out.println("Directory of " + dirname);
String s[] = f1.list(); //创建字符串数组s[]内含所有文件名
//如果是File fa[]=f1.listFiles(),则文件名包含路径名
for (int i = 0; i < s.length; i++) {
File f = new File(dirname + "/" + s[i]);
if (f.isDirectory()) {
System.out.println(s[i] + " is a directory");
} else {
System.out.println(s[i] + " is a file");
}
}
} else {
System.out.println(dirname + " is not a directory");
}
}
}
三、练习
练习①:遍历文件夹
一般说来操作系统都会安装在C盘,所以会有一个 C:\WINDOWS目录。遍历这个目录下所有的文件(不用遍历子目录),找出这些文件里,最大的和最小(非0)的那个文件,打印出他们的文件名。
package file; import java.io.File; public class TestFile { public static void main(String[] args) { File f = new File("c:\\windows"); File[] fs = f.listFiles(); if(null==fs) return; long minSize = Integer.MAX_VALUE; long maxSize = 0; File minFile = null; File maxFile = null; for (File file : fs) { if(file.isDirectory()) continue; if(file.length()>maxSize){ maxSize = file.length(); maxFile = file; } if(file.length()!=0 && file.length()<minSize){ minSize = file.length(); minFile = file; } } System.out.printf("最大的文件是%s,其大小是%,d字节%n",maxFile.getAbsoluteFile(),maxFile.length()); System.out.printf("最小的文件是%s,其大小是%,d字节%n",minFile.getAbsoluteFile(),minFile.length()); } }
for(int i:a)解释是:先设置一个与a数组里的元素相同的变量,这个变量先等于a数组的第一个元素,然后进入循环体,第二次循环就等于a数组的第二个元素,进入循环体,以此类推。
continue:继续下一次循环