Java IO详解(一)------File 类

Posted antao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java IO详解(一)------File 类相关的知识,希望对你有一定的参考价值。

1.File 类的字段

//是用来分隔同一个路径字符串中的目录的
System.out.println("目录分隔符:"+File.separator);//输出 
//指的是分隔连续多个路径字符串的分隔符
System.out.println("多个路径分隔符:"+File.pathSeparator);//输出 ;

 

2.File 类的构造方法

package file;

import java.io.File;

/***
 * @ClassName: IO
 * @Description: TODO
 * @Auther: chujiu
 * @Date: 2020/6/8
 * @version : V1.0
 */
public class IO {
    public static void main(String[] args) {

        //不使用 Java 提供的分隔符字段,注意:这样写只能在 Windows 平台有效
        File f1 = new File("G:\javabased\JavaTest\java.txt");
        //使用 Java 提供的分隔符
        File f2 = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest"+File.separator+"java.txt");
        System.out.println(f1);//输出 G:javabasedJavaTestjava.txt
        System.out.println(f2);//输出 G:javabasedJavaTestjava.txt

        //File(File parent, String child)
        //从父抽象路径名和子路径名字符串创建新的 File实例。
        File f3 = new File("G:");
        File f4 = new File(f3,"javabased");
        System.out.println(f4); //G:javabased

        //File(String pathname)
        //通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
        File f5 = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest"+File.separator+"java.txt");
        System.out.println(f5); //G:javabasedJavaTestjava.txt

        //File(String parent, String child)
        //从父路径名字符串和子路径名字符串创建新的 File实例。
        File f6 = new File("G:","javabased\JavaTest\java.txt");
        System.out.println(f6); //G:javabasedJavaTestjava.txt
    }
}

 

3.File 类的常用方法

①、创建方法

1.boolean createNewFile()  不存在返回true 存在返回false
2.boolean mkdir()  创建目录,如果上一级目录不存在,则会创建失败
3.boolean mkdirs()  创建多级目录,如果上一级目录不存在也会自动创建

 

②、删除方法

1.boolean delete()  删除文件或目录,如果表示目录,则目录下必须为空才能删除
2.boolean deleteOnExit()  文件使用完成后删除

 

③、判断方法

1.boolean canExecute()  判断文件是否可执行
2.boolean canRead()  判断文件是否可读
3.boolean canWrite()  判断文件是否可写
4.boolean exists()  判断文件或目录是否存在
5.boolean isDirectory()  判断此路径是否为一个目录
6.boolean isFile()  判断是否为一个文件
7.boolean isHidden()  判断是否为隐藏文件
8.boolean isAbsolute()  判断是否是绝对路径 文件不存在也能判断

 

④、获取方法

1.String getName()  获取此路径表示的文件或目录名称
2.String getPath()  将此路径名转换为路径名字符串
3.String getAbsolutePath()  返回此抽象路径名的绝对形式
4.String getParent()  //如果没有父目录返回null
5.long lastModified()  //获取最后一次修改的时间
6.long length()  返回由此抽象路径名表示的文件的长度(以字节为单位)。
7.boolean renameTo(File f)  重命名由此抽象路径名表示的文件。
8.File[] liseRoots()  //获取机器盘符(Window中就是所有系统的盘符)
9.String[] list()  返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
10.String[] list(FilenameFilter filter)  返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。

 

package file;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/***
 * @ClassName: FileMethod
 * @Description: TODO 文件或者文件夹的方法
 * @Auther: chujiu
 * @Date: 2020/6/8
 * @version : V1.0
 */
public class FileMethod {
    public static void main(String[] args) throws IOException {
        //创建方法
        File file1 = new File("G:\javabased\JavaTest\aa");
        System.out.println("创建成功了吗?" + file1.createNewFile());
        System.out.println("单级文件夹创建成功了吗?" + file1.mkdir());
        System.out.println("多级文件夹创建成功了吗?" + file1.mkdirs());
        File dest = new File("G:\javabased\JavaTest\a1.txt");
        System.out.println("重命名成功了吗?" + file1.renameTo(dest));

        //删除方法
        File file2 = new File("G:\javabased\JavaTest\a1.txt");
        System.out.println("删除成功了吗?" + file2.delete());
        file2.deleteOnExit();

        //判断方法
        File file3 = new File("G:\javabased\JavaTest\a1.txt");
        System.out.println("文件或者文件夹存在吗?" + file3.exists());
        System.out.println("是一个文件吗?" + file3.isFile());
        System.out.println("是一个文件夹吗?" + file3.isDirectory());
        System.out.println("是隐藏文件吗?" + file3.isHidden());
        System.out.println("此路径是绝对路径名?" + file3.isAbsolute());

        //获取方法
        File file4 = new File("G:\javabased\JavaTest\a1.txt");
        System.out.println("文件或者文件夹得名称是:" + file4.getName());
        System.out.println("绝对路径是:" + file4.getPath());
        System.out.println("绝对路径是:" + file4.getAbsolutePath());
        System.out.println("文件大小是(以字节为单位):" + file4.length());
        System.out.println("父路径是" + file4.getParent());
        
        //使用日期类与日期格式化类进行获取规定的时间
        long lastmodified = file4.lastModified();
        Date data = new Date(lastmodified);
        SimpleDateFormat simpledataformat = new SimpleDateFormat("YY年MM月DD日 HH:mm:ss");
        System.out.println("最后一次修改的时间是:" + simpledataformat.format(data));

        //文件或者文件夹的方法
        File[] file = File.listRoots();
        System.out.println("所有的盘符是:");
        for (File item : file) {
            System.out.println("	" + item);
        }

        File filename = new File("G:" + File.separator + "javabased"+ File.separator + "JavaTest" );

        String[] name = filename.list();
        System.out.println("指定文件夹下的文件或者文件夹有:");
        for (String item : name) {
            System.out.println("	" + item);
        }

        File[] f = filename.listFiles();
        System.out.println("获得该路径下的文件或文件夹是:");
        for (File item : f) {
            System.out.println("	" + item.getName());
        }

    }
}

 

4.File 的一些技巧

①、在 G:javabasedJavaTest 目录下创建 a.txt

package file;

import java.io.File;
import java.io.IOException;

/***
 * @ClassName: IO
 * @Description: TODO 在 G:javabasedJavaTest 目录下创建 a.txt
 * @Auther: chujiu
 * @Date: 2020/6/8
 * @version : V1.0
 */
public class IO {
    public static void main(String[] args) throws IOException {

        //File(File parent, String child)
        //从父抽象路径名和子路径名字符串创建新的 File实例。
        File dir = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest");
        File file = new File(dir,"a.txt");

        //判断dir 是否存在且表示一个目录
        if(!(dir.exists()||dir.isDirectory())){
            //如果 dir 不存在,则创建这个目录
            dir.mkdirs();
        }

        //根据目录和文件名,创建 a.txt文件
        file.createNewFile();

        //返回由此抽象路径名表示的文件或目录的名称。 这只是路径名称序列中的最后一个名字。 如果路径名的名称序列为空,则返回空字符串。
        System.out.println(file.getName()); //a.txt
        //返回此抽象路径名的父null的路径名字符串,如果此路径名未命名为父目录,则返回null。
        System.out.println(file.getParent());//G:javabasedJavaTest
        //将此抽象路径名转换为路径名字符串。 结果字符串使用default name-separator character以名称顺序分隔名称。
        System.out.println(file.getPath()); //G:javabasedJavaTesta.txt
    }
}

 

②、打印给定目录下的所有文件夹和文件夹里面的内容 

package file;

import java.io.File;
import java.io.IOException;

/***
 * @ClassName: IO
 * @Description: TODO 打印给定目录下的所有文件夹和文件夹里面的内容 
 * @Auther: chujiu
 * @Date: 2020/6/8
 * @version : V1.0
 */
public class IO {
    public static void getFileList(File file){
        //第一级子目录
        File[] files = file.listFiles();
for(File f:files){ //打印目录和文件 System.out.println(f); if(f.isDirectory()){ getFileList(f); } } } public static void main(String[] args) throws IOException { File f = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest"); getFileList(f); } }

 

以上是关于Java IO详解(一)------File 类的主要内容,如果未能解决你的问题,请参考以下文章

Java IO详解(一)------File 类

Java IO详解(一)------File 类

Java IO详解(一)------File 类

Java文件类File详解

Java IO流详解——File类

java的IO详解