I/O、硬盘、存储

 1、硬件

硬件通常由处理器(CPU)、处理器(内存)、输入设备(InputDevice)、输出设备(Output Device)组成。

CPU只能和内存做直接的数据交换。

I/O设备:数据必须由I/O设备处理并加载到内存之后才能被CPU处理。

常见I/O设备:O(显示器、扬声器),I(鼠标、键盘、麦克风),IO(触屏显示器、硬盘、网卡等)。

2、硬盘数据的读写可以理解为文件的读写问题。

3、文件

(1)文件的管理:由OS+文件系统统一管理

(2)基本知识:①文件被以树形结构管理,文件都是树上的节点

②文件可以分为两类:

a.存储数据的文件 ——普通文件,在Windows OS下,以文件后缀(file suffiex)来标记这个文件存储的是什么内容,包含可见文件和隐藏文件;

b.管理树形结构组织数据的文件 ——目录、文件夹

③文件树只是一个逻辑结构,而不是硬盘上的物理结构

(3)关于文件的路径(Path):根据一个规则,从文件树上唯一确定一个位置,这个位置一定对应某个节点,但是这个节点可以不存在。

a.绝对路径:从一颗树的根节点出发描述的路径

D:\school\.idea):先从根D:开始,找到D的孩子school,再找到school的孩子idea。

绝对路径的方式创建:

public class IO_Test {
    public static void main(String[] args) {
        //①直接传入字符串路径
        File file1=new File("D:\\school\\2022.06.29\\b.txt");
        //②传入父路径,再传入子路径
        File file2=new File("D:\\school\\2022.06.29","b.txt");
        //③以File传入parent
        File parent=new File("D:\\school\\2022.06.29");
        File file3=new File(parent,"b.txt");
    }
}

b.相对路径:从当前所在位置出发,描述的路径。                                                                            c.路径中的两个特殊符号——“ . ”和“ .. ” ;.表示在当前位置的目录不动,..表示回到当前位置的父节点。

4、文件的常见方法

(1)compareTo(File pathname);       //比较两个文件是否相等

 (2)createNewFile();      //true:创建成功;false:文件存在,抛出异常(IOException)

 

(3)delete();  //立即删除,只能删除叶子节点;true:删除成功,false:文件不存在或被占用,抛出IOException

删除非空目录时:①先遍历,删除这个目录下的所有子孙,让这个目录变成空目录;②删除该目录

public class FileDelete {
    public static void main(String[] args) throws IOException {
        //删除叶子节点时:
        File file=new File("D:\\school\\2022.07.01\\dir");
        traversal(file);
        boolean r=file.delete();
        System.out.println(r);
    }

    private static void traversal(File dir) throws IOException{
        File[] files = dir.listFiles(); // 查看这个目录下的所有孩子(不是子孙)
        for (File file : files) {
            if (file.isDirectory()) {   // 如果这个孩子也是目录,继续深度优先进行遍历
                System.out.println(file.getCanonicalPath() + "\\");
                traversal(file);
                // 当深度优先的遍历完成时,则可以认为该目录一定是空目录了
                file.delete();
            } else {
                System.out.println(file.getCanonicalPath());    // 得到这个文件的一个标准路径(去除一切无意义的 . 和 ..)
                file.delete();
            }
        }
    }
}

  deleteOnExit();  //在JVM退出时,才真正删除。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值