Java进阶核心之IO创建File文件和目录

Java进阶核心之IO创建File文件和目录

计算机文件和路路径

  • 什什么是计算机⽂文件(File)
    • 以计算机硬盘为载体存储在计算机上的信息集合,可以是文本、图片、视频、程序等,文件一般有拓展名,表示文件的类型
  • 文件目录 (Directory)
    • 就是我们一般称呼的文件夹,为了便于对文件进行行存取和管理
    • 文件目录是由文件目录项组成的。文件目录分为一级目录、二级目录和多级目录。多级目录结构也称为树形结构,在多级目录结构中,每一个磁盘有一个根目录,在根目录中可以包含若干子目录和文件,在子目录中不不但可以包含文件,而且还可以包含下一级子目录
    • 掌握了了基础后的可以去了了解Linux⽂文件系统,涉及到的东⻄西更更多,推荐是有一定的基础再看
  • 区分两个斜杠

1、斜杠: “/” 与 反斜杠: “”
2、反斜杠(\)是⼀一个特殊的字符,被称为转义字符,⽤用来转义后⾯面⼀一个字符。转义后的字符通常
⽤用于表示⼀一个不不可⻅见的字符或具有特殊含义的字符,⽐比如 \n 则表示换⾏行行, ?问号 , " 则表示
双引号, ’ 表示⼀一个单引号 等
3、在Java中的字⺟母前⾯面加上反斜线""来表示常⻅见的那些不不能显示的ASCII字符,我们称之为转
义字符
4、例例⼦子:需要输出双引号的⼀一段话
String title = " “这个是带双引号的标题” ";

  • 相对路径

    • 相对某个基准目录或者文件的路径,/表示当前路径…/表示上级目录
  • 绝对路径

    • 存储在硬盘上的真正路径·window路径分割符
    • 表示windows系统文件目录分割符
    • 如果是java代码在window下写某个文件的话需要下面的方式
    • D:\\soft\\xdclass.txt 因为单斜杠是⽤用来转义的
  • Linux和Mac路径分割符(开发人员推荐使用)

    • /表示Linux或者Mac的路径分隔符
    • 如果是Java代码在Linux或者Mac下写某个文件的话需要下面的方式
    • /usr/soft/xdcalss.net
  • 常见的文件

    • 文本txt
    • 图片jpg、png、jpeg
    • excel、csv等
    • tar.gzip、zip

java核心知识之File类讲解

  • 程序代码和文件目录的关系:主要就是对文件和目录进行增删改查,俗称CRUD

  • 简单了解IO,即Input/Output

    • 把内存的中数据存储到持久化设备到上的动作称为输出, Output 操作
    • 把持久化设备的数据读取到内存中的动作称为输入, Input操作
    • 一般把输入和输出的动作称为IO操作, IO也分网络IO,文件IO
  • java文件类File:

    • 主要是计算机文件和目录的操作,即对文件的和目录的增删改查
    • File类表示磁盘中存在的文件和目录File类的包名是java.io,也实现了Serializable,Comparable两大接口以便于其对象可序列化和比较
    • File.separator 目录分隔符,在不同的系统下不一样, windows和 mac /Linux
  • 常见的构造函数

//路路径和⽂文件拼接
public File(String pathname)
//⽗父路路径,⼦子路路径
public File(String parent, String child)
//测试⽅方法:⽂文件的路路径,即new File构造函数传⼊入的路路径
String getPath()
  • 常见方法
String dir = "C:\\Users\\79466\\Desktop\\;
String name = "a.txt";
File file = new File(dir, name);
//File file = new File(dir);
//⽂文件的 查询和判断
System.out.println(File.separator);
System.out.println("基本路路径 getPath()= " + file.getPath());
System.out.println("⽂文件名 getName()= " + file.getName());
System.out.println("绝对路路径 getAbsolutePath = " +
file.getAbsolutePath());
System.out.println("⽗父路路径名 getParent() = " + file.getParent());
System.out.println("是否是绝对路路径 isAbsolute() = " +
file.isAbsolute());
System.out.println("是否是⼀一个⽬目录 isDirectory() = " +
file.isDirectory());
System.out.println("是否是⼀一个⽂文件 isFile() = " + file.isFile());
System.out.println("⽂文件或⽬目录是否存在 exists() = " +
file.exists());
System.out.println("⽬目录中的⽂文件和⽬目录的名称所组成字符串串数组 list() ");
String[] arr = file.list();
for (String temp : arr) {
    
    
System.out.println(temp);
}
//创建指定的⽬目录
File mkdirFile = new File(dir + "/testdir");
mkdirFile.mkdir();
//创建多个层级的⽬目录
File mkdirsFile = new File(dir + "/testdirs/test/dd");
mkdirsFile.mkdirs();
// //创建⼀一个新的⽂文件
File newFile = new File(dir + "/testdir/newfile1.txt");
try {
    
    
newFile.createNewFile();
} catch (IOException e) {
    
    
e.printStackTrace();
}
//删除⽂文件
newFile.delete();

注意: File的构造函数只是创建一个File实例例,即使目录错误也不不出报错,因为没对文件进行操作

实例

封装一个⽅方法,传入⼀一个路径,则在此路径下创建test文件夹
然后在 test目录下创建10个文件夹,名称是1~10,然后再各个文件夹里创建一个txt文本文件,
名称也是1~10命名,重复调用此方法的话结果一样。

扫描二维码关注公众号,回复: 12480147 查看本文章
package test;

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

public class Ex10_1 {
    
    

    public static void main(String[] args) {
    
    
        creatFile("C:\\Users\\123\\Desktop\\");

    }

    public static void creatFile(String dir1){
    
    
        String dir =  dir1;
        File addfolder = new File(dir+"test");
        addfolder.mkdir();
        for (int i = 1; i <= 10 ; i++) {
    
    
            String name = ""+i;
            File addfiles = new File(addfolder,name);
            File addfile = new File(addfiles,name+".txt");
            addfiles.mkdirs();
            try {
    
    
                addfile.createNewFile();
            } catch (IOException e) {
    
    
                e.printStackTrace();
            }
        }

    }
}

猜你喜欢

转载自blog.csdn.net/ruan_luqingnian/article/details/113786726