Java-文件

基本概念

文件,对我们并不陌生,文件是是保存数据的地方,比如大家经常使用的 word 文档,txt文件,excel 文件。它既可以保存一张图片,也可以保存视频,声音...

文件流

文件在程序中是以流的形式来操作的

流:数据在数据源(文件)和程序(内存)之间经历的路径

输入流:数据从数据源(文件)到程序(内存)的路径

输出流:数据从程序(内存)到数据源(文件)的路径

常用的文件操作

创建文件对象相关构造器和方法

相关方法

java 复制代码
new File(String pathname)  // 根据路径构建一个 File 对象
new File(File parent,String child)  // 根据父目录文件 + 子路径构建
new File(String parent,String child)  //  根据父目录 + 子路径构建


createNewFile   // 创建新文件
方式一
java 复制代码
package com.heima.Hello.File;

import org.junit.Test;

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

public class FileCreate {
    public static void main(String[] args) {

    }

    // 方式 1
    @Test
    public void createFile01() throws IOException {
        String filePath = "D:\\news1.txt";
        File file1 = new File(filePath);

        file1.createNewFile();
        System.out.println("文件创建成功...");
    }
}
方式二
java 复制代码
import org.junit.Test;

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

public class FileCreate {
    public static void main(String[] args) {

    }

    // 方式 2
    @Test
    public void createFile02() throws IOException {

        File parentFile = new File("D:\\");
        String fileName = "news2.txt";
        // 这里的 file ,在 java 中只是一个对象而已
        File file = new File(parentFile, fileName);

        // 得创建后才能真正出来
        file.createNewFile();
        System.out.println("文件创建成功...");
    }
}
方式三
java 复制代码
import org.junit.Test;

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

public class FileCreate {
    public static void main(String[] args) {

    }

    // 方式 3
    @Test
    public void createFile03() throws IOException {

        String parentPath = "D:\\";
        String fileName = "news3.txt";
        File file = new File(parentPath, fileName);
        file.createNewFile();
        System.out.println("文件创建成功...");
    }
}

获取文件的相关信息

getName

java 复制代码
import org.junit.Test;

import java.io.File;

public class FileInformation {
    public static void main(String[] args) {

    }

    // 获取文件信息
    @Test
    public void info() {
        // 先创建文件对象
        File file = new File("D:\\new1.txt");

        System.out.println("文件名字 = " + file.getName());
    }
}

getAbsolutePath

java 复制代码
import org.junit.Test;

import java.io.File;

public class FileInformation {
    public static void main(String[] args) {

    }

    // 获取文件信息
    @Test
    public void info() {
        // 先创建文件对象
        File file = new File("D:\\new1.txt");

        System.out.println("文件绝对路径 = " + file.getAbsolutePath());
    }
}

getParent

java 复制代码
import org.junit.Test;

import java.io.File;

public class FileInformation {
    public static void main(String[] args) {

    }

    // 获取文件信息
    @Test
    public void info() {
        // 先创建文件对象
        File file = new File("D:\\new1.txt");

        System.out.println("文件父目录 = " + file.getParent());
    }
}

length

java 复制代码
import org.junit.Test;

import java.io.File;

public class FileInformation {
    public static void main(String[] args) {

    }

    // 获取文件信息
    @Test
    public void info() {
        // 先创建文件对象
        File file = new File("D:\\new1.txt");

        System.out.println("文件大小 = " + file.length());
    }
}

exists

java 复制代码
import org.junit.Test;

import java.io.File;

public class FileInformation {
    public static void main(String[] args) {

    }

    // 获取文件信息
    @Test
    public void info() {
        // 先创建文件对象
        File file = new File("D:\\news1.txt");
        // 判断文件是否存在,返回布尔值 true or false
        System.out.println("文件是否存在 = " + file.exists());
    }
}

isFile

java 复制代码
import org.junit.Test;

import java.io.File;

public class FileInformation {
    public static void main(String[] args) {

    }

    // 获取文件信息
    @Test
    public void info() {
        // 先创建文件对象
        File file = new File("D:\\news1.txt");
        // 判断是否是文件存在,返回布尔值 true or false
        System.out.println("文件是否存在 = " + file.isFile());
    }
}

isDirectory

java 复制代码
import org.junit.Test;

import java.io.File;

public class FileInformation {
    public static void main(String[] args) {

    }

    // 获取文件信息
    @Test
    public void info() {
        // 先创建文件对象
        File file = new File("D:\\news1.txt");
        // 判断是否是一个目录,返回布尔值 true or false
        System.out.println("文件是否存在 = " + file.isDirectory());
    }
}

目录的操作和文件删除

mkdir 创建一级目录、mkdirs创建多级目录、delete 删除空目录或文件

java 复制代码
import org.junit.Test;

import java.io.File;
public class Directory_ {
    public static void main(String[] args) {

    }

    // 判断 D:\\ 是否存在 news1.txt,存在即删除掉
    @Test
    public void m1() {
        String filePath = "D:\\news1.txt";
        File file = new File(filePath);

        if (file.exists()) {
            if(file.delete()) {
                System.out.println(filePath + "删除成功...");
            } else {
                System.out.println("删除失败...");
            }
        } else {
            System.out.println("文件不存在...");
        }

    }
}
java 复制代码
import org.junit.Test;

import java.io.File;
public class Directory_ {
    public static void main(String[] args) {

    }

    // 判断 D:\\ 是否存在 demo2.txt,否则提示不存在
    // 这里我们需要体会到,目录也是一个文件
    @Test
    public void m2() {
        String filePath = "D:\\demo2.txt";
        File file = new File(filePath);

        if (file.exists()) {
            if(file.delete()) {
                System.out.println(filePath + "删除成功...");
            } else {
                System.out.println("删除失败...");
            }
        } else {
            System.out.println("该目录不存在...");
        }

    }
}

创建一级目录使用 mkdir() 方法,创建多级目录使用 mkdirs() 方法

java 复制代码
import org.junit.Test;

import java.io.File;
public class Directory_ {
    public static void main(String[] args) {

    }

    // 判断 D:\\a\\b\\c 目录是否存在,如果存在就提示不存在,否则就创建
    @Test
    public void m3() {
        String directoryPath = "D:\\a\\b\\c";
        File file = new File(directoryPath);

        if (file.exists()) {
            System.out.println(directoryPath + "存在...");
        } else {
            if(file.mkdirs()){
                System.out.println(directoryPath + "创建成功...");
            } else {
                System.out.println(directoryPath + "创建失败...");
            }
        }

    }
}
相关推荐
m0_7488735523 分钟前
C++与Rust交互编程
开发语言·c++·算法
今天和Aboo结婚了吗1 小时前
【Broker一重启消息没了:一次RabbitMQ非持久化+没开Confirm的血亏事故】
java·rabbitmq·messagequeue·bug排查
daidaidaiyu7 小时前
一文学习 工作流开发 BPMN、 Flowable
java
ZTLJQ7 小时前
序列化的艺术:Python JSON处理完全解析
开发语言·python·json
2401_891482178 小时前
多平台UI框架C++开发
开发语言·c++·算法
SuniaWang8 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
sheji34168 小时前
【开题答辩全过程】以 基于springboot的扶贫系统为例,包含答辩的问题和答案
java·spring boot·后端
88号技师8 小时前
2026年3月中科院一区SCI-贝塞尔曲线优化算法Bezier curve-based optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
t198751288 小时前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
m0_726965989 小时前
面面面,面面(1)
java·开发语言