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 + "创建失败...");
            }
        }

    }
}
相关推荐
88号技师2 小时前
2026年1月一区SCI-波动光学优化算法Wave Optics Optimizer-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
Tomorrow'sThinker2 小时前
篮球裁判犯规识别系统(四) foul_fn函数 上
java·前端·javascript
wregjru2 小时前
【读书笔记】Effective C++ 条款3:尽可能使用const
开发语言·c++
FreeBuf_2 小时前
“前缀替换“攻击引发恐慌:高度仿真的“Jackson“冒牌库入侵Maven中央仓库
java·python·maven
kylezhao20192 小时前
C#手写串口助手
开发语言·c#
Kyln.Wu2 小时前
【python实用小脚本-292】[HR揭秘]手工党点名10分钟的终结者|Python版Zoom自动签到+名单导出加速器(建议收藏)
开发语言·python·swift
普通网友2 小时前
PictureSelector 相册全白不显示问题
java·开发语言
普通网友2 小时前
用 Next.js 15 做图片查看网站:图片双击放大的交互坑与修复
开发语言·javascript·交互
独自破碎E2 小时前
kafka中的时间轮实现
java·开发语言