您的位置:首页 > 编程语言 > Java开发

77、java的IO操作-File

2017-10-12 10:21 369 查看
一、File类的概述
1、我们要想实现IO的操作,就必须知道硬盘上文件的表现形式。
而Java就提供了一个类File供我们使用。
2、File:文件和目录(文件夹)路径名的抽象表示形式

二、File类的构造方法
1、File(String pathname):
根据一个路径得到File对象
2、File(String parent, String child):
根据一个目录和一个子文件/目录得到File对象
3、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");

// 以上三种方式其实效果一样
}
}

三、File类的成员方法之创建功能
1、public boolean createNewFile():
创建文件 如果存在这样的文件,就不创建了,如果父目录不存在,会抛出异常
2、public boolean mkdir():
创建文件夹 如果存在这样的文件夹,就不创建了,如果父目录不存在,返回false创建不成功
3、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盘目录demo下创建一个文件a.txt
File file2 = new File("e:\\demo\\a.txt");
System.out.println("createNewFile:" + file2.createNewFile());

// 需求:我要在e盘目录test下创建一个文件b.txt
// Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
// 注意:要想在某个目录下创建内容,该目录首先必须存在。
// File file3 = new File("e:\\test\\b.txt");
// System.out.println("createNewFile:" + file3.createNewFile());

// 需求:我要在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("mkdirs:" + file7.mkdirs());

// 看下面的这个东西:
File file8 = new File("e:\\liuyi\\a.txt");
System.out.println("mkdirs:" + file8.mkdirs());
}
}

四、File类的成员方法之删除功能
public boolean delete()	只能删除单个文件或者空的文件夹

注意:
1、如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
2、要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
3、Java中的删除不走回收站。
public class FileDemo {
public static void main(String[] args) throws IOException {
// 创建文件
// File file = new File("e:\\a.txt");
// 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这个文件夹
File file4 = new File("aaa\\bbb\\ccc");
System.out.println("delete:" + file4.delete());

// 删除功能:我要删除aaa文件夹
// File file5 = new File("aaa");
// System.out.println("delete:" + file5.delete());

File file6 = new File("aaa\\bbb");
File file7 = new File("aaa");
System.out.println("delete:" + file6.delete());
System.out.println("delete:" + file7.delete());
}
}

五、File类的成员方法之重命名功能
public boolean renameTo(File dest)

注意:
1、如果路径名相同,就是改名。
2、如果路径名不同,就是改名并剪切。

路径以盘符开始:绝对路径	c:\\a.txt
路径不以盘符开始:相对路径	a.txt
public class FileDemo {
public static void main(String[] args) {
// 创建一个文件对象
// File file = new File("林青霞.jpg");
// // 需求:我要修改这个文件的名称为"东方不败.jpg"
// File newFile = new File("东方不败.jpg");
// System.out.println("renameTo:" + file.renameTo(newFile));

File file2 = new File("东方不败.jpg");
File newFile2 = new File("e:\\林青霞.jpg");
System.out.println("renameTo:" + file2.renameTo(newFile2));
}
}

六、File类的成员方法之判断功能
1、public boolean isDirectory():
判断是否是目录
2、 public boolean isFile():
判断是否是文件
3、 public boolean exists():
判断是否存在
4、public boolean canRead():
判断是否可读
5、public boolean canWrite():
判断是否可写
6、public boolean isHidden():
判断是否隐藏
public class FileDemo {
public static void main(String[] args) {
// 创建文件对象
File file = new File("a.txt");

System.out.println("isDirectory:" + file.isDirectory());// false
System.out.println("isFile:" + file.isFile());// true
System.out.println("exists:" + file.exists());// true
System.out.println("canRead:" + file.canRead());// true
System.out.println("canWrite:" + file.canWrite());// true
System.out.println("isHidden:" + file.isHidden());// false
}
}

七、File类的成员方法之基本获取功能
1、public String getAbsolutePath():
获取绝对路径
2、public String getPath():
获取相对路径
3、public String getName():
获取名称
4、public long length():
获取长度。字节数
5、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());
//		getAbsolutePath:/Volumes/E/myeclipse_workspace/day19_File/demo\test.txt

System.out.println("getPath:" + file.getPath());
//		getPath:demo\test.txt

System.out.println("getName:" + file.getName());
//		getName:demo\test.txt

System.out.println("length:" + file.length());
//		length:0

System.out.println("lastModified:" + file.lastModified());
//		lastModified:0

// 1416471971031
Date d = new Date(1416471971031L);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = sdf.format(d);
System.out.println(s);
//		2014-11-20 16:26:11
}
}

八、File类的成员方法之高级获取功能
1、public String[] list():
获取指定目录下的所有文件或者文件夹的名称数组
2、public File[] listFiles():
获取指定目录下的所有文件或者文件夹的File数组
public class FileDemo {
public static void main(String[] args) {
// 指定一个目录
File file = new File("e:\\");

// public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
String[] strArray = file.list();
for (String s : strArray) {
System.out.println(s);
}
System.out.println("------------");

// public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
File[] fileArray = file.listFiles();
for (File f : fileArray) {
System.out.println(f.getName());
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java基础