IO流第32天(IO流,目录操作,流的分类,)

文件常用操作

目录操作和文件删除
mkdir()创建一级目录
mkdirs()创建多及目录
delete()删除空目录或文件(需要把先把文件删除才能删目录)
案例:

  1. //判断d:\news1.txt是否存在,如果存在就删除
//判断d:\\news1.txt是否存在,如果存在就删除
    @Test
    public void m1() {
        String str = "d:\\\\news1.txt";
        File file = new File(str);
        if (file.exists()) {
            if (file.delete()) {
                System.out.println("文件news1.txt存在,现已删除");
            }
        } else {
            System.out.println("改文件不存在");
        }
    }
  1. //判断目录d:\test目录是否存在,存在就删除(在java编程中,目录也被当做一种文件)
//判断目录d:\\test目录是否存在,存在就删除(在java编程中,目录也被当做一种文件)
    @Test
    public void m2(){
        String str="d:\\test";
        File file = new File(str);
        if(file.exists())//判断是否存在
        {
            if(file.delete())//判断是否删除成功
            {
                System.out.println(str+"路径存在,现已删除");
            }
            else{
                System.out.println("目录下有文件,删除失败");
            }

        }
        else{
            System.out.println("没有此目录,删除失败");
        }
    }
  1. //判断D:\test\a\b\c目录是否存在,如果存在就提示存在,否则就创建目录
    注意:创建多级目录使用mkdirs()
@Test
    public void m3(){
        String str="D:\\test\\a\\b\\c";
        File file = new File(str);
        if (file.exists())
        {
            System.out.println(str+"存在");
        }
        else{
            if(file.mkdirs())
            {
                System.out.println(str+"创建成功");
            }
            else
            {
                System.out.println(str+"创建失败");
            }
        }
    }

IO流

  1. I/O是Input和Output的缩写(输入输出),I/O流是非常实用的技术,用于处理数据传输,如读/写文件,网络通讯等.
  2. java程序中,对于数据的输入输出以"流(stream)"的方式进行.
  3. java.io包下提供各种"流"类和接口,用以获取不同种类的数据,并通过方法输入或输出数据
  4. 输入Input:读取外部数据(磁盘,光盘等存储设备的数据)到程序(内存)中
  5. 输出Output:将程序(内存)数据输出到磁盘,光盘等存储设备中
    image

流的分类

  • 按操作单位不同分为字符流(按字符,文本文件)和字节流(8bit,二进制文件)
  • 按数据流的流向不同分为输入流和输出流
  • 按流的角色不同分为:节点流,处理流/包装流
    | (抽象基类) | 字节流 | 字符流 |
    | ------------ | ------------ | ------------ |
    | 输入流 | InputStream | Reader |
    | 输出流 | OutputStream | Witer |
    java的IO流共涉及40多个类,实际上非常规则,都是从如上4个抽象类派生的
    由这4个类派生出来的子类名称都是以其父类作为子类名后缀
    image
posted @   不再犹豫27  阅读(14)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示