IO、存储、硬盘、文件系统基本常识

硬盘的特点

1.硬盘存储空间大,内存存储空间小

2.硬盘访问速度慢,内存访问速度快

3.硬盘成本低,内存成本高

4.硬盘上的数据断电不会丢失,内存数据断电会丢失(可持久化存储)

文件

1.狭义的文件:存储在硬盘上的数据,以“文件”为单位,通过N叉树来组织文件(目录结构)。

2.广义的文件:操作系统要负责管理软硬件资源,通常会把这些资源都统一的抽象成“文件”进行管理。例如:操作系统把键盘抽象成文件(stdin),读这个文件就能读到用户输入的按键内容。

路径

1.绝对路径:我们知道目录是一共N叉树,树中的每个结点都可以被一条从根开始,一直到达的结点的路径所描述,而这种描述方式就被称为文件的绝对路径(absolute path)。例如:要找可以查看线程数的jconsole.exe文件的绝对路径:C:\Program Files\Java\jdk1.8.0_192\bin\jconsole.exe.其中 C:是盘符,每个\分割的部分,都是目录(/也是可以的,在其他操作系统上 \ 是不可行的,所以更推荐使用 / )

2.相对路径:首先得有一共”基准路径“也叫”工作路径“,相对路径就是以基准路径为起点,往下继续怎么走,才能到达目标的路径表示方式。像上面的例子,如果基准路径是D:此时的相对路径就是:./Program Files/Java/jdk1.8.0_192/bin/jconsole.exe. 如果基准路径是D:/Program Files/  那相对路径就是./Java/jdk1.8.0_192/bin/jconsole.exe(./表示当前目录)

基本IO操作

文件操作是属于操作系统层面,不同操作系统提供了不同的API,JAVA作为跨平台语言,为了统一代码,JVM就把不同系统的操作文件的API进行封装,直接使用Java中的库的代码直接操作文件。

File类

1.构造方法:

 创建File对象的时候,并不代表真实存在该文件。

2.File类提供的方法

1.get系列方法的作用和差异

public static void main(String[] args) throws IOException {
        File f = new File("./test.txt");//通过给相对路径(或绝对路径)创建File对象,但并不代表有这个文件
        System.out.println(f.getName());//返回文件名
        System.out.println(f.getParent());//返回父路径名
        System.out.println(f.getPath());//返回路径名
        System.out.println(f.getAbsoluteFile());//返回绝对路径
        System.out.println(f.getCanonicalPath());//返回路径名的规范形式
    }

 

 2.普通文件的创建-->createNewFile

public static void main(String[] args) throws IOException {
        File f = new File("./test.txt");
        System.out.println(f.exists());//文件或目录是否存在
        System.out.println(f.isDirectory());//是否是目录
        System.out.println(f.isFile());//是否是文件
        System.out.println(f.createNewFile());//当且仅当具有该名称的文件尚不存在时,原子的创建一个由该抽象路径名命名的新的空文件。
        System.out.println(f.exists());
        System.out.println(f.isDirectory());
        System.out.println(f.isFile());
        System.out.println(f.createNewFile());
    }

 

 3.普通文件的删除 -->delete

public static void main(String[] args) {
        File f = new File("./test.txt");
        System.out.println(f.exists());
        System.out.println(f.delete());//删除文件
        System.out.println(f.exists());
    }

 此外f.deleteOnExit()是

    • 请求在虚拟机终止时删除由此抽象路径名表示的文件或目录。即进程退出时删除文件

 4.目录的创建 mkdir,mkdirs

public static void main(String[] args) {
        File f = new File("./dir/aaa/bbb");
        System.out.println(f.exists());//目录或文件是否存在
        f.mkdirs();//创建多级目录,mkdir是创建一级目录
        System.out.println(f.isDirectory());
        System.out.println(f.isFile());

    }

 5.文件重命名

public static void main(String[] args) throws IOException {
        File f = new File("./dir/aaa/bbb/test.txt");
        f.createNewFile();//在目录下创建一个文件
        File f2 = new File("./dir/aaa/bbb/test2.txt");//该路径下的文件不存在
        f.renameTo(f2);//重命名由此抽象路径名表示的文件
        System.out.println(f.exists());
        System.out.println(f2.exists());
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指挥部在下面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值