JavaIO流入门1文件File

简介: IO流入门1 文件FileFile流层次图创建文件对象相关的构造和方法方式一:new File(路径)方式二 new File(父目录文件对象, 子路径)方式三:new File(父目录文件,子路径)常用的文件操作目录的操作和文件的删除boolean mkdirs = file.mkdirs();//创建多级目录

File流层次图

982fa313b5224ec7a4a8a51cb656672e.png

创建文件对象相关的构造和方法


常用的三种创建对象的方法:


方式一:根据路劲构建一个File对象


方式二:根据父目录文件对象+子路径构建


方式三:根据父目录文件+子路径构建


构建形式new File();


createNewFile()方法才会创建文件到磁盘上!


方式一:new File(路径)


new File(String pathname)


new File(String pathname)根据路劲构建一个File对象


直接写入文件路径就ok了


 @Test
    public void create01(){
        //直接把路径写清楚就可以了
        String filePath="f:\\news1.text";
        File file = new File(filePath);
        try {
            file.createNewFile();//会报一个IO异常。
            System.out.println("文件创建成功!!!!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

b176b425f66240f28d0074c57de4eca1.png

方式二 new File(父目录文件对象, 子路径)


//根据父目录文件对象+子路径构建


//如果创建"f:\news2.text" 则parentfile 就是f:\


 @Test
    public void create02(){
        File parentfile = new File("f:\\");//父目录文件
        String fileName="news2.text";//子路径
        File file = new File(parentfile, fileName);
        try {
            file.createNewFile();
            System.out.println("文件创建成功!!!!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

f73b5f26a89940aaa63c0030ab3ad5b6.png747e20eeb78c4b599ea77f9852d5b62e.png

``createNewFile()`方法才会创建文件到磁盘上!


常用的文件操作


da7f818e4e864ff6bb7aea197348ccbc.png


一些小案列:


@Test
    public void info(){
        //先创建文件对象
        File file = new File("f:\\news1.text");
        //调用相应的方法就行,看一个案列
        System.out.println("文件名字:"+file.getName());
        System.out.println("绝对路径:"+file.getAbsolutePath());
        System.out.println("文件父目录:"+file.getParent());
    }


成功拿到文件名字:

bc65af853c6444bf8628f13dfd5a06be.png


接下来演示获取文件大小


我们先打开文件编辑一点文字


一个汉字3字节 一个字母1字节


2bc500d2fc734dadb68ccb8d7b68a9ab.png


```java
 @Test
    public void info(){
        //先创建文件对象
        File file = new File("f:\\news1.text");
        //调用相应的方法就行,看一个案列
        System.out.println("文件名字:"+file.getName());
        System.out.println("绝对路径:"+file.getAbsolutePath());
        System.out.println("文件父目录:"+file.getParent());
        System.out.println("文件大小(按字节):"+file.length());
    }


f3985686f8ec468aa20e3552bc41bdb6.png

目录的操作和文件的删除


mkdir:创建一级目录


mldirs:创建多级目录


delete:删除空目录或者文件


删除操作


public void m1(){
        String fileName="F://news2.text";
        String fileName2="F://news4.text";
        File file = new File(fileName);
        File file2 = new File(fileName2);
        if(file.exists()){
            boolean delete = file.delete();
            if(delete){
                System.out.println("news2.text删除成功");
            }else{
                System.out.println("news2.text删除失败");
            }
        }else{
            System.out.println("对不起没有该文件");
        }
        if(file2.exists()){
        }else{
            boolean delete = file.delete();
            if(delete){
                System.out.println("news4.text删除成功");
            }else{
                System.out.println("news4.text删除失败");
            }
            System.out.println("对不起没有该文件news4.text");
        }
    }


0f90ccec902d4b5b903adb6c067e08aa.png


判断目录是否存在


体会:在Java编程中,目录也是一种文件的存在


先创建一个文件


8343a75cda9d44ba88d3634c18703a15.png

 @Test
    public void m2(){
        String fileName="F://Demo";
        File file = new File(fileName);
        if(file.exists()){
            boolean delete = file.delete();
            if(delete){
                System.out.println("删除成功");
            }else{
                System.out.println("删除失败");
            }
        }else{
            System.out.println("对不起没有该目录");
        }
    }

7b59ec2016724f268a893f0a0f9e3159.png


boolean mkdirs = file.mkdirs();//创建多级目录

判断"F://Demo//a"是否存在?不存在就创建


mkdir()创建一级目录


mkdirs()创建多级目录


@Test
    public void m3(){
        String fileName="F://Demo//a";
        File file = new File(fileName);
        if(file.exists()){
            System.out.println("该目录存在");
        }else{
            boolean mkdirs = file.mkdirs();//创建多级目录
            if(mkdirs){
                System.out.println("创建成功");
            }else{
                System.out.println("创建失败");
            }
        }
    }


第一次运行


f38a656cc26f401298c2d3152314593f.png


第二次运行:


73aaeefd505f4df293851298c2c6388d.png

目录
相关文章
|
算法 计算机视觉
OpenCV(二十六):边缘检测(二)
OpenCV(二十六):边缘检测(二)
385 0
freeradius部署及挑战模式配置
freeradius部署及挑战模式配置
6535 1
freeradius部署及挑战模式配置
|
存储 分布式计算 分布式数据库
实时湖仓技术选型,企业如何借实时湖仓赢在“数据驱动”时代
本文从技术的角度,为大家解析实时湖仓的存储原理以及生态选型,为企业建设实时湖仓给出参考意见,助力企业借实时湖仓赢在“数据驱动”时代。
345 0
|
11月前
|
NoSQL 数据可视化 关系型数据库
安装 Redis
本文主要介绍了Linux系统下Redis的安装步骤,包括卸载旧版本、下载新版本、编译安装以及配置启动等详细操作,并解释了Redis默认端口6379的由来。同时,文章还简要说明了Windows环境下Redis的下载与服务安装方法。最后,推荐了几款Redis可视化管理工具,如RedisView、QuickRedis、AnotherRedisDesktopManager和RedisPlus,提供了它们的功能特点及下载链接,方便用户根据需求选择合适的工具进行数据库管理。
755 1
|
设计模式 网络协议 Java
06.动态代理设计模式
本文详细介绍了动态代理设计模式,包括其必要性、概念、实现方式及案例分析。动态代理允许在运行时动态创建代理对象,增强代码复用性和灵活性,减少类膨胀。文章通过对比静态代理,深入解析了动态代理的实现机制,如基于接口和类的动态代理,以及其在Retrofit中的应用。同时,讨论了动态代理的优势和潜在问题,如性能开销和调试难度。最后,提供了丰富的学习资源链接,帮助读者进一步理解和掌握动态代理。
250 1
|
存储 监控 安全
【实战经验】记录项目开发常见的8个难题
风沙席地起,战马踏风归!
685 110
|
JavaScript Java 关系型数据库
Spring事务失效的8种场景
本文总结了使用 @Transactional 注解时事务可能失效的几种情况,包括数据库引擎不支持事务、类未被 Spring 管理、方法非 public、自身调用、未配置事务管理器、设置为不支持事务、异常未抛出及异常类型不匹配等。针对这些情况,文章提供了相应的解决建议,帮助开发者排查和解决事务不生效的问题。
2322 1
|
存储 机器学习/深度学习 人工智能
轻松实现向量搜索:探索 Elastic-Embedding-Searcher 项目
elastic-embedding-searcher 是一个基于 Elasticsearch 的向量搜索框架,简化了向量数据的存储和检索过程。通过结合 Elasticsearch 的分布式能力与向量表示,项目实现了高效、精准的相似度检索。支持多种流行的嵌入模型(如 BERT、Word2Vec),并能够处理大规模数据集。该项目适用于文本相似度检索、问答系统及多语言处理等场景,开发者可以轻松集成并实现高效的数据检索。
497 2
|
关系型数据库 MySQL Linux
成功解决:2003 -Can‘t connect toMySQL server on ‘10.1.46.42(10060 “Unknown error“) 使用navicate连接虚拟机出错
这篇文章记录了在CentOS 7系统上安装并配置MySQL后,使用Navicat尝试进行远程连接但失败的问题。问题的主要原因是虚拟机的防火墙没有关闭。文章详细介绍了如何检查防火墙的状态,如何临时关闭它,以及如何禁止防火墙在系统启动时自动启动。当防火墙处于开启状态时,远程连接无法成功;关闭或禁用防火墙后,远程连接便能成功建立。
成功解决:2003 -Can‘t connect toMySQL server on ‘10.1.46.42(10060 “Unknown error“) 使用navicate连接虚拟机出错
|
机器学习/深度学习 测试技术 计算机视觉
【计算机视觉 | ViT-G】谷歌大脑提出 ViT-G:缩放视觉 Transformer,高达 90.45% 准确率
谷歌大脑提出 ViT-G:缩放视觉 Transformer,高达 90.45% 准确率

热门文章

最新文章