#Java中File的入门使用详解#
在这篇文章中,对概念的理解可能比较少,主要介绍怎么用.
*以下内容均从本地eclipse中整理复制过来,是个人学习的笔记总结,所以多为单独的java文件,还请见谅,不过每一篇都添加了注释,通俗易懂.大家可以把代码复制到机子上自己试验.希望对初学者有所帮助.
package cn.lawfree_01;
import java.io.File;
/*
* 我们想要实现IO操作,就必须知道硬盘上文件的表现形式
* 而java就提拱了一个File类供我们的hi用
*
* File:文件和目录路径名的抽象形式
* 构造方法:
* File(String pathname):根据一个路径得到File对象
* File(String parent,String child):根据一个目录和一个子文件、目录得到File对象
* File(File parent,String child):根据一个父File对象和一个子文件、目录得File对象
*
*/
public class FileDemo {
public static void main(String[] args){
//File(String pathname):根据一个路径得到File对象
//把e:\\demo\\a.txt封装成一个File对象
File file=new File("E:\\demo\\a.txt");
//File(String parent,String child):根据一个目录和一个子文件、目录得到File对象
File file2=new File("E:\\demo","a.txt");
//File(File parent,String child):根据一个父File对象和一个子文件、目录得File对象
File file3=new File("e:\\demo");
File file4=new File("file3","a.txt");
//以上三种方式效果一样
}
}
package cn.lawfree_02;
import java.io.File;
import java.io.IOException;
/*
* 创建功能
* public boolean createNewFile():创建文件
* public boolean mkdir():创建文件夹,如果存在这样的文件夹,就不创建了
* public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
*
* 注意:到底是要穿建文件还是文件夹
*/
public class FileDemo {
public static void main(String[] args) throws IOException {
//需求:我们要在E盘目录下创建一个文件夹demo
File file=new File("e:\\demo");
System.out.println("mkdir:"+file.mkdir());
//需求我们要在E盘muludemo下创建一个文件a.txt
File file2=new File("e:\\demo\\a.txt");
System.out.println("createNewFile:"+file2.createNewFile());
//蹴球:我要在e盘目录test下创建一个文件b.txt
//注意:要想在某个目录下创建内容,该目录首先必须存在
//File file3=new File("e:\\test\\b.txt");错误,会抛异常
//需求:我要在我要在e盘目录test下创建aaa目录
//File file4=new File("e:\\test\\aaa");
//System.out.println("mkdir:"+file4.mkdir());
// File file5=new File("e:\\test");
// File file6=new File("e:\\test\\aaa");
// System.out.println("mkdir:"+file5.mkdir());
// System.out.println("mkdir:"+file6.mkdir());
//其实我们有跟简单的方法
File file7=new File("e:\\aaa\\bbb\\ccc\\ddd");
System.out.println("mkdir:"+file7.mkdir());
//看下面这个东西:
File file8=new File("e:\\lawfree\\a.txt");//不会报错,创建的a.txt是一个文件夹
System.out.println("mkdirs:"+file8.mkdirs());
}
}
package cn.lawfree_03;
import java.io.File;
import java.io.IOException;
/*
* 删除功能:public boolean delete()
* 注意:a:若创建文件或文件夹忘了写盘符,那么默认在项目路径下
* b:Java中删除不走回收站
* c:要删除一个文件夹,请注意该文件夹内不能包含文件或文件夹
*/
public class FileDemo {
public static void main(String[] args) throws IOException {
//创建文件
// File file =new File("e:\\a.txt");
// file.createNewFile();
// System.out.println("createNewFile():"+file.createNewFile());
//我不小心写成这样了
File file=new File("a.txt");
System.out.println("createNewFile():"+file.createNewFile());
//继续来几个
File file2=new File("aaa\\bbb\\ccc");
System.out.println("mkdirs:"+file2.mkdirs());
//删除功能:我要删除a、txt这个文件
File file3=new File ("a.txt");
System.out.println("delete:"+file3.delete());
//我要删除ccc这个文件夹
System.out.println("delete:"+file2.delete());
//我要删除aaa这个文件夹
File file5=new File ("aaa");//其下有东西
System.out.println("delete:"+file5.delete());
}
}
package cn.lawfree_04;
import java.io.File;
import java.io.IOException;
/*
*重命名功能:public boolean renameTo(File dest)
*
* 路径以盘符开始:绝对路径
* 路径不以盘符开始:相对路径
* 如果路径名不同,就改名并剪切
*/
public class FileDemo {
public static void main(String[] args) throws IOException {
File file=new File ("a.txt");
System.out.println(file.createNewFile());
//需求:我要修改这个文件名称为b.txt
File newfile=new File ("b.txt");
System.out.println(file.renameTo(newfile));
File newfile2=new File ("e:\\c.txt");
System.out.println(newfile.renameTo(newfile2));
}
}
import java.io.File;
/*
* 判断功能
* public boolean isDirectory();判断是否是目录
* public boolean isFile();
* public boolean exists();
* public boolean canRead();
* public boolean canWrite();
* public boolean isHidden();
*/
public class FileDemo {
public static void main(String[] args) {
//创建文件对象
File file=new File("a.txt");
System.out.println("isDirectory:"+file.isDirectory());
System.out.println("isFile:"+file.isFile());
System.out.println("exists:"+file.exists());
System.out.println("canRead:"+file.canRead());
System.out.println("canWrite:"+file.canWrite());
System.out.println("isHidden:"+file.isHidden());
}
}
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter;
/*
* 获取功能
* public String getAbsolutePath() 获取绝对路径
* Public String getPath() 获取相对路径
* public String getName() 获取名称
* public long length() 获取长度、字节数
* public long lastModified() 获取上一次修改时间,返回毫秒值
*
*/
public class FileDemo {
public static void main(String[] args) {
//创建文件对象
File file=new File("demo\\test.txt");
System.out.println(" getAbsolutePath:"+file.getAbsolutePath());
System.out.println(" getPath:"+file. getPath());
System.out.println(" getName:"+file.getName());
System.out.println(" length:"+file.length());
System.out.println(" lastModified:"+file.lastModified());
Date date=new Date(file.lastModified());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date));
}
}
附上两个练习:
import java.io.File;
/*
* 判断目录下是否有.jpg文件,若有则输出此文件
*
* 分析:
* A:封装e盘目录
* B:获取目录下所有文件或文件夹的File数组
* C:遍历该File数组,得到每一个File对象
* D:判断是否文件:
* 是:继续判断是否为.jpg结尾
* 是:输出该文件名
* 否:不理
* 否:不理
*/
public class FileDemo {
public static void main(String[] args) {
//封装e盘目录
File file=new File("e:\\");
//获取目录下所有文件或文件夹的File数组
File[] fileArray=file.listFiles();
//遍历该File数组,得到每一个File对象
for(File f:fileArray){
//是否是文件
if(f.isFile()){
//判断是否为。jpg结尾
if(f.getName().endsWith(".jpg")){
//输出该文件名
System.out.println(f.getName());
}
}
}
}
}
import java.io.File;
/*
* 需求:e:\电影\日韩影片下的视频名称改为
* 00_.avi
* 思路:
* A:封装目录
* B:获取该目录下的所有文件File数组
* C:遍历该File数组得到每一个File对象
* D:拼接一个新的名称,然后重命名即可
*/
public class FileDemo {
public static void main(String[] args) {
//封装目录
File srcFolder=new File("E:\\电影\\日韩影片");
//获取该目录下的所有的文件File数组
File[] fileArray=srcFolder.listFiles();
//遍历这个File数组,得到每一个File对象
for (File file:fileArray){
//System.out.println(file.getName());
String name=file.getName();
int startIndex=name.indexOf("-");
String numberString =name.substring(startIndex+6, startIndex+7);
System.out.println(numberString);
String newName=numberString;
File newFile=new File(srcFolder,newName);
//重命名即可
file.renameTo(newFile);
}
}
}
最后附上一份简单总结提纲:
File
(1)IO流操作中大部分都是对文件的操作,所以java就提供了File类供我们来操作文件
(2)构造方法
A:File file=new File(“e:\demo\a.txt”);
B:File file=new File(“e:\demo”,“a.txt”);
C:File file=new File(“e:\demo”);
File file2=new File(file,“a.txt”);
(3)File类的功能
A:创建功能
B:删除功能
C:重命名功能
D:判断功能
E:获取功能
F:高级功能
G:过滤器功能
(4)案例:
A:输出指定目录下指定后缀名的文件名称
a:先获取所有的,在遍历的时候,再输出
b:先判断,再获取,最后直接遍历输出即可
B:批量修改文件名称