一、初始化:

File f1 = new File("//Users//Shared//JavaIOTest//Test01.txt");
File f2 = new File("//Users//Shared//JavaIOTest","Test01.txt"); File fl = new File("//Users//Shared//JavaIOTest");
File f3 = new File(fl,"Test01.txt");
//注释:f1f2f3指向的是同一个文件。

二、判断

1、判断File类成员是否为目录

System.out.println(f1.isDirectory());
System.out.println(fl.isDirectory());

输出:

false
true

2、判断是否为文件

System.out.println(f1.isFile());
System.out.println(fl.isFile());

输出:

true
false

3、判断文件或目录是否存在

System.out.println(f1.exists());
System.out.println(fl.exists());

输出:

true
true

4、判断文件是否可写(可读就用canRead())

System.out.println(f1.canWrite());
System.out.println(fl.canWrite());

在macOS中,canWrite对应的是“已锁定”。Windows中就是对应的是“只读”。

5、判断文件是否是隐藏的

System.out.println(f1.isHidden());
System.out.println(fl.isHidden());

在macOS系统下,可以通过terminal终端命令对文件或目录进行隐藏。

chflags hidden /xxx/xxx/xxx

可以通过以下命令取消隐藏:

chflags nohidden /xxx/xxx/xxx

三、创建

1、创建文件

注意使用createNewFile()的时候需要接收错误,接收错误一般使用抛出错误或者之前讲过的try catch语句。这里为了方便直接使用了throws。

public static void main(String[] args) throws Exception {
//创建文件
File fl = new File("//Users//Shared//JavaIOTest");
File newFile = new File(fl, "myNewTest02.txt");
boolean isSucceed = newFile.createNewFile();
System.out.println(isSucceed);
}

第一次运行的时候应该是输出true的,第二次再运行的时候便会输出false,因为该文件已经存在,不能重复输出。

2、创建目录

mkdir只能创建一级文件夹,mkdirs可以创建多级文件夹。

当前目录(/Users/Shared/JavaIOTest/)下没有文件夹。

//创建文件夹
File newDir = new File("//Users//Shared//JavaIOTest//First//Second");
System.out.println(newDir.mkdir());
System.out.println(newDir.mkdirs());

输出:

false
true

四、删除

只能删除空的文件夹xx.delete()

System.out.println((new File("//Users//Shared//JavaIOTest//First//Second")).delete());

五、重命名

renameTo()

fl.renameTo(new File("//Users//Shared//JavaIOTest(rename!)"));

六、移动

使用renameTo(),当在同一级目录中的时候,效果就是重命名。

当renameTo在不同的目录的时候,效果相当于移动。

也就是说renameTo是修改文件的目录属性,换句话说,就是修改文件的位置信息。

就上面的例子,我们把恢复刚才已改名的文件夹名字为“JavaIOTest”,然后把myNewTest02.txt移动到First目录中。

newFile.renameTo(new File("//Users//Shared//JavaIOTest//First//myNewTest02.txt"));

七、获取

1、获取名字

.getName() 返回String

2、获取父目录

.getParent()  返回String

3、获取最后修改时间

.lastModified() 返回String

4、获取文件字节数

.length() 返回int

5、获取当前目录我的所有文件与文件夹

.list() 返回String[]

.listFiles() 返回File[]

八、复制

使用copy(),需要抛异常。

【java】学习路径31-文件IO基本操作(未涉及到流)的更多相关文章

  1. Java学习笔记31(IO:Properties类)

    Properties类,表示一个持久的j集,可以存在流中,或者从流中加载 是Hashtable的子类 map集合的方法都能用 用途之一:在开发项目中,我们最后交给客户的是一个编译过的class文件,客 ...

  2. Java学习-043-获取文件在目录中的路径

    我们在日常的电脑使用中,经常需要在当前目录或当期目录及其子目录中查找文件,并获取相应的文件路径名.在我们的自动化测试中,也经常需要确认文件在目录中是否成功生成或已存在,因而我写了一个小方法来实现. 获 ...

  3. Java学习-010-创建文件夹源代码

    此文源码主要为应用 Java 创建文件目录的源码.若有不足之处,敬请大神指正,不胜感激! 创建文件夹源代码如下所示: /** * @function 文件操作:创建文件夹.若文件夹不存在,则级联创建文 ...

  4. Java学习路径及练手项目合集

    Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 实验楼上的[Java 学习路径]中将首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE ...

  5. APUE学习笔记3_文件IO

    APUE学习笔记3_文件IO Unix中的文件IO函数主要包括以下几个:open().read().write().lseek().close()等.这类I/O函数也被称为不带缓冲的I/O,标准I/O ...

  6. Java学习-014-文本文件写入实例源代码(两种写入方式)

    此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 第一种:文本文件写入,若文件存在则删除原文件,并重新创建文件.源代码如下所示: /** * @fun ...

  7. Java学习-013-文本文件读取实例源代码(两种数据返回格式)

    此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ...

  8. Java学习-011-创建文件实例及源代码

    此文源码主要为应用 Java 创建文件的源代码.若有不足之处,敬请大神指正,不胜感激! 创建文件的源代码如下所示: /** * @function 文件操作:创建文件.若文件不存在,则直接创建文件:若 ...

  9. Java学习路径(抛光砖)

    这就是我刚刚在五孔问答中找到的Java学习路线图抛光砖价格.我个人认为,这条Java学习路线是可以的.它是2018年相对较新的Java学习路线,更符合企业就业标准. Java学习路径的第一阶段:Jav ...

随机推荐

  1. NB-IoT/LoRa/eMTC和蓝牙/WiFi的关系是互补还是替代?

    近年来,相继出现了许多物联网技术.WiFi.蓝牙.NB-IoT.LoRa.eMTC和其他技术为IoT实践提供了一流的技术支持通讯端口.拥有这么多技术,能够互相替代吗?还是能起到互补的作用?为低功耗广域 ...

  2. DevOps落地实践点滴和踩坑记录-(1)

    记录初衷 本人一直在从事企业内DevOps落地实践的工作,走了不少弯路,也努力在想办法解决面临的问题,期间也经历过不少人和事情,最近突然有想法把经历过的,不管好的不好的都记录下来,分享给和我一样的一线 ...

  3. vue内容拖拽放大缩小

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 【Spring】AOP实现原理(一):AOP基础知识

    AOP相关概念 在学习AOP实现原理之前,先了解下AOP相关基础知识. AOP面向切面编程,它可以通过预编译方式或者基于动态代理对我们编写的代码进行拦截(也叫增强处理),在方法执行前后可以做一些操作, ...

  5. 【WPF】CAD工程图纸转WPF可直接使用的xaml代码技巧

    前言:随着工业化的进一步发展,制造业.工业自动化等多领域,都可能用到上位监控系统.而WPF在上位监控系统方面,应该算是当下最流行的前端框架之一了.而随着监控体系的不断完善与更新迭代,监控画面会变得越来 ...

  6. 在Visual Studio Code 中配置Python 中文乱码问题

    在Visual Studio Code 中配置Python 中文乱码问题 方法一:直接代码修改字符集 添加前四行代码 import io import sys #改变标准输出的默认编码 sys.std ...

  7. LMC7660即-5V产生电路

    LMC7660为小功率极性反转电源转换器,通过LMC7660电路产生-5V电压,其芯片管脚定义如下表所示. LMC7660负电压产生电路如下图所示. 其中6脚当供电电压大于等于5V时该脚必须悬空,当供 ...

  8. IO多路复用epoll

    0 why: 问题来源 0.1 网络编程流程 //创建socket int s = socket(AF_INET, SOCK_STREAM, 0); //绑定IP地址和端口号port bind(s, ...

  9. 安装linux下一些常用软件

    1.先卸载一些不常用的软件 apt purge ufw lxd lxd-client lxcfs lxc-common 2.安装一些常用软件 apt install iproute2 ntpdate ...

  10. 手把手带你实现基于 Vite+Vue3 的在线Excel表格系统

    今天,葡萄带你了解如何基于Vite+Vue3实现一套纯前端在线表格系统. 在正式开始项目介绍之前,首先咱们首先来介绍一下Vite和Vue3. Vue3 2020年09月18日Vue.js 3.0发布, ...