每个File类对象表示一个磁盘文件或文件夹,其对象属性中包含了文件或文件夹的相关信息,如文件名,长度,所含文件个数等等,调用它的方法可以完成对文件或文件夹的管理操作,如创建,删除等
1:创建File类的对象
构造方法 | 功能说明 |
public File(String path) | 用path参数创建File对象所对应的磁盘文件名或文件夹名及其路径 |
public File(String path,String name) | 以path为路径,以name 为文件或文件夹名创建File对象 |
public File(File dir,String name) | 用一个已经存在代表某磁盘文件夹的File对象dir作为文件夹,以name作为文件或文件夹名来创建File对象 |
注意:由于操作系统的不同,windows用“\”作为文件夹分割符,linux用“/”作为文件夹分割符。为了使java程序能在不同平台运行,可以使用File类的一个静态变量 File.separator。该属性中保存了当前系统规定的文件夹分隔符。
如:G:\\test.txt; -----> "G:"+File.separator+"test.txt";
2:获取文件或文件夹属性
方法 | 功能说明 |
---|---|
public boolean exists() | 判断文件或文件夹是否存在 |
public boolean isFile() | 判断对象是否代表有效文件 |
public boolean isDirectory() | 判断对象是否代表有效文件夹 |
public String getName() | 返回文件或文件夹名 |
public String getPath() | 返回文件或文件夹的路径 |
public long length() | 返回文件的字节数 |
public boolean canRead() | 判断文件是否可读 |
public boolean canWrite() | 判断文件是否可写 |
public String[] list() | 将文件夹中所有文件名保存在字符串数组中返回 |
public boolean equals() | 比较两个文件或文件夹是否相等 |
3:文件或文件夹的操作
方法 | 功能说明 |
---|---|
public Boolean renameTo(File newFile) | 将文件重命名成newFile对应的文件名 |
public boolean delete() | 将当期文件删除,若删除成功,则返回true,否则返回false |
public boolean mkdir() | 创建当期文件夹的子文件夹。若创建成功返回true,否则返回false |
下面用一个例子来反顾知识点:
@Test
public void testFileDemo(){
String str = new String();
try{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader inp = new BufferedReader(isr);
String sdir = "d:\\cgj";
String sfile;
File fdir = new File(sdir);
if(fdir.exists() && fdir.isDirectory()){
System.out.println("文件夹:"+sdir+"已经存在");
for (int i = 0; i < fdir.list().length; i++) {
System.out.println((fdir.list())[i]);
}
File fdir2 = new File("d:\\cgj\\temp");
if(!fdir2.exists()){
fdir2.mkdir(); // 这步有意思,(它是没有,就创建)
}
System.out.println();
System.out.println("创建新文件夹后的文件列表");
for(int i = 0; i<fdir.list().length;i++){
System.out.println((fdir.list())[i]);
}
System.out.println("请输入该文件夹中的一个文件名:");
sfile = inp.readLine(); // 意思是从键盘输入数据
File ffile = new File(fdir,sfile); // 第三种File对象的创建方式
if(ffile.isFile()){
System.out.println("文件名:"+ffile.getName());
System.out.println("文件所在路径:"+ffile.getPath());
System.out.println("文件大小:"+ffile.length()+"字节");
}
if(inp != null)
inp.close();
}
}catch(IOException e){
e.printStackTrace();
}
}