* 〈File:文件和文件目录路径的抽象表示形式,与平台无关。〉
*
* File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。
* 如果需要访问文件内容本身,则需要使用输入/输出流。
* 想要在java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的
* 一个File对象,可能没有一个真实存在的文件或者目录。
* File对象可以作为参数传递给流的构造器。
*
* File类的使用:
* 1.File一个对象,代表一个文件或者文件目录。
* 2.File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法。
* 并未涉及到写入或读取文件内容的操作,如果需要读取或写入文件内容,需要用到IO流来完成。
* 3.后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的“终点”。
/**
* 如何创建File的实例
* @param args
*/
public static void main(String[] args) {
/**
* 1.public File(String pathname)
* 以pathname为路径创建File对象,可以是绝对路径或者相对路径,
* 如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
*
* public File(String parent,String child)
* 以parent为父路径,child为子路径创建File对象。
*
* public File(File parent,String child)
* 根据一个父File对象和子文件路径创建File对象
*
* 相对路径:相较于某个路径下,指明的路径
* 绝对路径:E:\workspace\testDemo 具体到文件的位置 -- 包含盘符在内的文件或文件目录的路径。
*
* 3.路径分隔符:
* 在windows和DOS系统--- 路径用\\
* 在Linux和URL上--- 路径用/表示
*
*
*/
File file = new File("hello.txt");//相对于当前module即testDemo的路径--E:\workspace\testDemo 这里找一个hello.txt
File file1 = new File("E:\\workspace\\testDemo\\hello.txt");//相对于当前module即testDemo的路径--E:\workspace\testDemo 这里找一个hello.txt
System.out.println(file);
System.out.println(file1);
//构造器2
File file3 = new File("E:\\workspace","testDemo");
System.out.println(file3);//输出上面的路径名
//构造器3
File file4 = new File(file3,"hi.txt");
System.out.println(file4);
}
/**
* public String getAbsolutePath();获取绝对路径
* public String getPath();//获取路径
* public String getName();//获取名称
* public String getParent();//获取上层文件目录路径。若无,返回null
* public long length(); 获取文件长度(即:字节数)。不能获取目录的长度
* public long lastModified();获取最后一次的修改时间,毫秒值
*
* public String[] list();获取指定目录下的所有文件或者文件目录的名称数组
* public File[] listFiles();获取指定目录下的所有文件或者文件目录的File数组
*
* public boolean renameTo(File file);把文件重命名为指定的文件路径
*/
@Test
public void test(){
File file = new File("Hello1.txt");
File file1 = new File("E:\\workspace\\testDemo\\hello.txt");//相对于当前module即testDemo的路径--E:\workspace\testDemo 这里找一个hello.txt
System.out.println(file.getAbsolutePath());
System.out.println(file.getPath());
System.out.println(file.getName());
System.out.println(file.getParent());
System.out.println(file.length());
System.out.println(file.lastModified());
System.out.println(file.list());
System.out.println(file.listFiles());
}
@Test
public void test2(){
File file1 = new File("E:\\workspace\\testDemo");
// String[] list = file1.list();
// for(String str : list){
// System.out.println(str);
// }
File[] files = file1.listFiles();
for(File file : files){
System.out.println(file);
}
}
/**
* public boolean renameTo(File file);把文件重命名为指定的文件路径
* 比如:file1.renameTo(file2)
* 要想保证返回true(即修改成功) ---- 1. 需要确保file1是真实存在的。2.需要确保file2是不存在的。
* @return
*/
@Test
public void testChange(){
File file = new File("Hello1.txt");
File file1 = new File("E:\\workspace\\testDemo\\Hello2.txt");
boolean b = file.renameTo(file1);
System.out.println(b);
}
/**
* public boolean isDirectory();判断是否是文件目录
* public boolean isFile();判断是否是文件
* public boolean exists();判断是否存在
* public boolean canRead();判断是否可读
* public boolean canWrite();判断是否可写
* public boolean isHidden();判断是否隐藏
*/
@Test
public void test3(){
File file1 = new File("Hello2.txt");
//
// 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());
}
/**
* 创建功能:
* public boolean createNewFile();创建文件,若文件存在,则不创建,返回false,
* public boolean mkdir();创建文件目录,如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。
* public boolean mkdirs();创建文件目录。如果上层文件目录不存在,一并创建
*
* 注意事项:如果你创建文件或者文件目录没有写盘符路径,那么默认在项目的路径下。
*
* public boolean delete();//删除文件或文件夹
* 删除注意:
* 该删除操作不走回收站功能。
* 要删除一个文件夹,请注意该文件夹内不能包含文件或者其他目录。
*/
@Test
public void test4(){
File file = new File("Hi.txt");
if(file.exists()){
throw new RuntimeException("文件存在");
}
try {
file.createNewFile();
} catch (IOException e) {
System.out.println("创建失败");
}
//文件目录创建
File file1 = new File("E:\\workspace\\testDemo\\testIO");
boolean mkdir = file1.mkdir();
if(mkdir){
System.out.println("创建成功");
}else {
System.out.println("已经存在");
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-30332.html