package src.com.zhang.IO.FileTest;
import org.junit.Test;
import javax.xml.crypto.Data;
import java.io.DataInput;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.Scanner;
public class FileTest {
/*
如何创建File实例
注意用File创建对象时不考虑硬盘中是否存在真实的文件,而只是在内存中创建了对象而已
*/
@Test
public void test1() {
//相对路径是相对于当前的module
//构造器1
File file1 = new File("hello.txt");
//构造器2:当最后的子文件不一定是固定的时候可以写成这样
File file2 = new File("DataStructs\\src\\com\\zhang", "IO");
//构造器3:
File file3 = new File(file2, "1.txt");
}
/**
* File类的常用方法
*/
@Test
public void test2() {
File file1 = new File("hello.txt");
File file2 = new File("D:\\IDEA project\\DataStructs\\hello.txt");
System.out.println("===========相对路径===========");
String absolutePath = file1.getAbsolutePath();
String path = file1.getPath();
String name = file1.getName();
String parent = file1.getParent();
File parentFile = file1.getParentFile();
long length = file1.length();
long l = file1.lastModified();
System.out.println("absolutePath " + absolutePath);
System.out.println("path " + path);
System.out.println("name " + name);
System.out.println("parent " + parent);
System.out.println("parentFile " + parentFile);
System.out.println("length " + length);
System.out.println("lastModified " + new Date(l));
System.out.println("=============绝对路径=============");
String absolutePath1 = file2.getAbsolutePath();
String path1 = file2.getPath();
String name1 = file2.getName();
String parent1 = file2.getParent();
File parentFile1 = file2.getParentFile();
long length1 = file2.length();
long l1 = file2.lastModified();
System.out.println("absolutePath1 " + absolutePath1);
System.out.println("path1 " + path1);
System.out.println("name1 " + name1);
System.out.println("parent1 " + parent1);
System.out.println("parentFile1 " + parentFile1);
System.out.println("length1 " + length1);
System.out.println("lastModified1 " + l1);
}
/**
* list()和listFiles()的使用
*/
@Test
public void test3() {
//这里需要文件真实存在
File file1 = new File("D:\\IDEA project\\DataStructs");
String[] list = file1.list();
System.out.println(Arrays.toString(list));
File[] files = file1.listFiles();
for (File file : files) {
System.out.println(file);
}
}
/**
* file1.renameTo(file2) 将file1重命名并移动到file2所在目录中
*/
@Test
public void test4() {
// File file1=new File("D:\\IDEA project\\DataStructs\\hello.txt");
// File file2=new File("D:\\IDEA project\\DataStructs\\File\\hello.txt");
// boolean b = file1.renameTo(file2);
// System.out.println(b);
File file1 = new File("D:\\IDEA project\\DataStructs\\hello.txt");
File file2 = new File("D:\\IDEA project\\DataStructs\\File\\hello1.txt");
boolean b = file1.renameTo(file2);
System.out.println(b);
}
/**
*
*/
@Test
public void test5() {
File file1 = new File("hello1.txt");
System.out.println(file1.isDirectory());
System.out.println(file1.isFile());
System.out.println(file1.exists());
System.out.println(file1.canRead());
System.out.println(file1.canWrite());
System.out.println(file1.isHidden());
}
@Test
public void test6() throws IOException {
File file1 = new File("1.txt");
if (!file1.exists()) {
file1.createNewFile();
System.out.println("创建成功");
} else {
file1.delete();
System.out.println("删除成功");
}
}
/**
* mkdir:只能创建一级文件目录
* mkdirs:可以创建多级文件夹目录
*/
@Test
public void test7() {
File file = new File(".\\DataStructs\\IO\\IO2");
boolean mkdir = file.mkdirs();
System.out.println(mkdir);
}
/**
* 判断是否有后缀名为.jpg的文件,可以使用String的endWith方法
*/
/**
* 批量生产文件夹或文件
*/
/**
* 批量生成文件夹或者文件
*/
@Test
public void test8() throws IOException {
//批量生成文件夹
File file = new File(".\\DataStructs\\IO\\IO2");
int line=10;
for(int i=0;i<line;i++){
File file1=new File(file,"文件"+(i+1));
if (!file1.exists()){
file1.mkdirs();
}
}
//批量生成文件
int line1=10;
for(int i=0;i<line1;i++){
File file1=new File(file,"文件"+(i+1)+".txt");
if (!file1.exists()){
file1.createNewFile();
}
}
}
/**
* 递归遍历打印出指定目录下的所有文件,包括子文件目录下的文件
*/
public static void printSubfile(File file){
File[] files = file.listFiles();
for (File file1:files){
if (file1.isDirectory()){
printSubfile(file1);
}
else{
System.out.println(file1.getAbsolutePath());
}
}
}
@Test
public void test9(){
File file=new File(".\\DataStructs");
printSubfile(file);
}
}
File类的使用
最新推荐文章于 2022-12-09 23:22:37 发布