IO包下的File
File
1.可以操作文件
2.可以操作文件夹
3.可以操作文件的路径
public static void fun(){
String pathseparator = File.pathSeparator;
System.out.println(pathseparator);
String separator = File.seParaTor;
System.out.println(separator);
}
构造方法
//绝对路径
//磁盘上的路径并且这个路径是唯一的
//相对路径
//相对路径是有参照物的
构造方法
File(String pathname)
File(String parent, String child)
File(File parent, String child)
//在桌面创建一个文件夹,取名为 Test
//构造方法一:
// 从Test文件夹属性中 复制 Test 文件夹的路径
File file = new File("/Users/s/Desktop/Test");
System.out.println(file);
//判断该路径是否存在
boolean exists = file.exists();
System.out.println(exists);
//使用相对路径 参照物是当前工程的根目录
File file1 = new File("src/s.txt");
// 打印绝对路径
// 这里不管有没有这个txt文件
// 系统还是会默认打印出路径
System.out.println(file1.getAbsolutePath());
//构造方法二:
String parent = "/Users/s/Desktop";
String child = "Test";
File file2 = new File(parent, child);
boolean exists = file2.exists();
System.out.println(exists3);
//构造方法三:
File f = new File(parent);
File file3 = new File(f, child);
boolean exists4 = file.exists();
System.out.println(exists4);
创建文件方法
File file = new File("/Users/s/Desktop/Test/hh.txt")
boolean b = file.createNewFile();
System.out.println(b);
File file2 = new File(src/s.txt);
boolean b1 = file2.createNewFile();
System.out.println(b1);
File file3 = new File("/Users/s/Desktop/Test/x/y/z);
boolean m = file3.mkdirs();
System.out.println(m);
删除
File file = new File("/Users/s/Desktop/Test/x");
boolean b = file.delete();
System.out.println(b);
判断
判断是否是文件夹
File("/Users/s/Desktop/Test/hh.txt")
boolean directory = file.isDirectory();
System.out.println(directory);
判断是否是文件
File file = newFile("/Users/s/Desktop/Test/hh.txt")
boolean file2 = file.isFile();
System.out.println(file2);
判断文件是否存在
File file = newFile("/Users/s/Desktop/Test/hh.txt")
boolean exists1 = file.exists();
System.out.println(exists1);
获取
//在Test文件夹中创建一个txt文件取名www
//在这个txt文件中 随便写几个字
// 获取路径(跟toString方法一样 输出路径 不管路径是否存在)
File file = new File("/Users/s/Desktop/Test/s.txt");
String path = file.getPath();
System.out.println(file);
// 也可以 System.out.println(file.toString());
// 获取文件名字
String name = file.getName();
System.out.println(name);
// 获取文件长度(获取文件 占多少字节)
// 英文占1个字节 中文占3个字节
// 不同格式的文件 占的字节不同
long lengh = file.length();
System.out.println(length);
获取路径下所以文件及文件夹的名字/全路径
File file = new File("/Users/s/Desktop/Test");
String[] list = file.list();
for(String string : list){
System.out.println(string);
}
File[] listFiles = file.listFiles();
for(File file2 : listFiles){
System.out.println(file2);
}
练习
从控制台输入一个字符串 该字符串是文件夹路径
计算这个文件夹的大小
public class Demo {
public static void main(String[] args) {
File file = getDirFile();
long length = getDirLengthByFile(file);
System.out.println(length);
}
public static File getDirFile(){
Scanner scanner = new Scanner(System.in);
while(true){
System.out.println("请输入一个文件夹的路径");
String path = scanner.nextLine();
File file = new File(path);
if (!file.exists()){
System.out.println("输入的路径不存在");
}else {
return file;
}
}
}
public static long getDirLengthByFile(File file){
long sum = 0;
File[] listFiles = file.listFiles();
for (subFiles.isFile()){
sum = sum + subFiles.length;
}else{
sum = sum + getDirLengthByFile(subFiles);
}
}
return sum;
}
从控制台输入一个字符串 该字符串是文件夹路径
删除这个文件夹
public class Demo {
public static void main(String[] args) {
File file = getDirFile();
boolean delete = file.delete();
System.out.println(delete);
}
public static File getDirFile() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入一个文件夹的路径");
String path = scanner.nextLine();
File file = new File(path);
if (!file.exists()) {
System.out.println("输入的路径不存在");
}else if (file.isFile()) {
System.out.println("输入的是一个文件,请重新输入");
}else {
return file;
}
}
}
public static void deleteDirByFile(File file) {
File[] listFiles = file.listFiles();
for (File subFile : listFiles) {
if (subFile.isFile()) {
subFile.delete();
}else {
deleteDirByFile(subFile);
}
}
file.delete();
}
}
http://blog.csdn.net/ssssssue