欢迎访问宙启技术站
智能推送

Java中使用File类进行文件操作的方法

发布时间:2023-06-21 04:20:40

Java中使用File类进行文件操作的方法非常多,本文将从创建、删除、重命名、获取文件信息、读取、写入等方面进行详细介绍。

1. 创建文件

创建单个文件的方法:

File file = new File("D:/file/test.txt");
try {
    file.createNewFile();
} catch (IOException e) {
    e.printStackTrace();
}

创建多级目录:

File file = new File("D:/file/test/test.txt");
if (!file.getParentFile().exists()) {
    file.getParentFile().mkdirs(); //创建多级目录
}
try {
    file.createNewFile();
} catch (IOException e) {
    e.printStackTrace();
}

2. 删除文件

删除单个文件的方法:

File file = new File("D:/file/test.txt");
if (file.exists()) {
    file.delete();
}

删除文件夹及其下所有文件(使用递归):

public void deleteDir(File file) {
    if (file.isDirectory()) {
        File[] files = file.listFiles();
        for (File f : files) {
            deleteDir(f);//递归删除子目录
        }
    }
    file.delete();
}

3. 重命名文件

单个文件重命名:

File file = new File("D:/file/test.txt");
File newFile = new File("D:/file/new.txt");
if (file.exists()) {
    file.renameTo(newFile);
}

文件夹重命名(其下所有文件路径不变):

File file = new File("D:/file/test");
File newFile = new File("D:/file/new");
file.renameTo(newFile);

4. 获取文件信息

获取文件名:

File file = new File("D:/file/test.txt");
System.out.println(file.getName()); //test.txt

获取文件父目录:

File file = new File("D:/file/test.txt");
System.out.println(file.getParent()); //D:\file

获取文件大小(单位:字节):

File file = new File("D:/file/test.txt");
System.out.println(file.length());

5. 读取文件内容

使用InputStream读取文件内容:

File file = new File("D:/file/test.txt");
InputStream is = null;
try {
    is = new FileInputStream(file);
    byte[] buffer = new byte[1024];
    int len = 0;
    while ((len = is.read(buffer)) != -1) {
        System.out.println(new String(buffer, 0, len));
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (is != null) {
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用BufferedReader读取文件内容(逐行读取):

File file = new File("D:/file/test.txt");
BufferedReader br = null;
try {
    br = new BufferedReader(new FileReader(file));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (br != null) {
        try {
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

6. 写入文件内容

使用OutputStream写入文件内容:

File file = new File("D:/file/test.txt");
OutputStream os = null;
try {
    os = new FileOutputStream(file);
    String str = "Hello world!";
    byte[] bytes = str.getBytes();
    os.write(bytes);
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (os != null) {
        try {
            os.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用BufferedWriter写入文件内容(逐行写入):

File file = new File("D:/file/test.txt");
BufferedWriter bw = null;
try {
    bw = new BufferedWriter(new FileWriter(file));
    String str = "Hello world!";
    bw.write(str);
    bw.newLine(); //换行
    str = "Welcome to Java!";
    bw.write(str);
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (bw != null) {
        try {
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

File类的使用非常灵活,可以根据实际需求进行组合使用。在进行文件操作时,需要注意文件路径格式和异常处理。