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();
}
}
}
}