前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java 文件操作对象 IO流

java 文件操作对象 IO流

作者头像
await
发布2021-09-09 11:58:14
发布2021-09-09 11:58:14
59900
代码可运行
举报
文章被收录于专栏:awaitawait
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
//File对象  C:/Users/28528/Desktop/java文件练习
        //先构造一个FIle对象,传入文件路径(绝对路径,相对路径)
        //绝对路径是以根目录开头的完整路径 如 C:/Users/java文件练习
        //相对路径 如 /usr/bin/javac
        //注意Windows平台使用\作为路径分隔符,
        //在Java字符串中需要用\\表示一个\。Linux平台使用/作为路径分隔符
        //可以用.表示当前目录,..表示上级目录。
        File f1 = new File("sub\\javac"); // 绝对路径是C:\Docs\sub\javac
        File f2 = new File(".\\sub\\javac"); // 绝对路径是C:\Docs\sub\javac
        File f3 = new File("..\\sub\\javac"); // 绝对路径是C:\sub\javac
        File f=new File("C:/Users/28528/Desktop/java文件练习");
        File f4=new File("..");
        System.out.println(f1+"\n"+f2+"\n"+f3+"\n"+f);
        System.out.println(f1.getCanonicalPath());
        String file=File.separator;
        //File.separator 根据当前平台打印 "\" 或 "/" 静态变量separator系统分隔符
        System.out.println(file);
        //File对象三种形态    1.getPath 2.getAbsolutePath 3.getCanonicalPath
        //1 返回构造方法传入的路径
        //2 返回绝对路径
        //3 返回规范路径 跟绝对路径类似
代码语言:javascript
代码运行次数:0
运行
复制
//File 调用方法
        //1 判断File对象里的路径是否存在
        File f1=new File("C:/Users/28528/Desktop/java文件练习");//目录
        File f2=new File("C:\\Users\\28528\\Desktop\\demo1.txt");//文件
        System.out.println(f2.isFile());//判断是否存在一个文件 true false
        System.out.println(f1.isDirectory());//判断是否存在一个目录 true false
        //2 获取File对象的文件的权限跟大小
//        用File对象获取到一个文件时,还可以进一步判断文件的权限和大小:
//        boolean canRead():是否可读;
//        boolean canWrite():是否可写;
//        boolean canExecute():是否可执行;
//        long length():文件字节大小。
        System.out.println(f2.length());
代码语言:javascript
代码运行次数:0
运行
复制
//File创建文件和删除文件
        String name1="默认文件夹1",name2="txt";//默认的文件名跟后缀
        System.out.println("是否自定义文件名(y):");
        char shu=in.next().charAt(0);
        if(shu=='y'){
            System.out.println("请输入文件名:");
            name1=in.next();//输入创建的文件的名字
            System.out.println("请输入后缀名:");
            name2=in.next();//输入创建的文件的后缀
        }
        File file=new File("C:/Users/28528/Desktop/"+name1+"."+name2);
        System.out.println(file);//输出文件名
        if(file.isFile())//判断是否存在文件
        {
            if(file.delete()){//有文件将它删除
                System.out.println("文件已被删除");
            }
        }else{//不存在就创建一个文件  创建的文件名需要自己给后缀
            file.createNewFile();//创建一个文件
            System.out.println("创建文件成功");
            System.out.println("是否删除创建的文件(y):");
            shu=in.next().charAt(0);
            if(shu=='y'){
                if(file.delete()){
                    System.out.println("文件已删除");
                }
            }
        }

运行完后自动删除

{tabs-pane label="代码"}

代码语言:javascript
代码运行次数:0
运行
复制
//File临时文件
        //临时文件的前缀和后缀
        File file=File.createTempFile("这是一个临时文件",".txt");
        //JVM退出时自动删除
        file.deleteOnExit();
        System.out.println(file.isFile());//判断文件是否存在
        System.out.println(file.getAbsolutePath());//返回文件的绝对路径

{/tabs-pane} {tabs-pane label="图片"}

{/tabs-pane}

{tabs-pane label="代码"}

代码语言:javascript
代码运行次数:0
运行
复制
//File 获取目录下的文件和子目录名
        File file=new File("C:/Users/28528/Desktop/");
        File[] filelist=file.listFiles();//获取所有文件和子目录
        for(File f:filelist){//利用foreach循环打印所有的文件跟子目录
            System.out.println(f);
        }
        //FilenameFilter 符合文件要求的文件活目录返回
        File[] filelist2=file.listFiles(new FilenameFilter(){
            @Override
            public boolean accept(File dir,String name){
                return name.endsWith(".docx");//返回true表示接收该文件
                //endsWith  筛选出指定的后缀
                //startsWith  筛选出指定的前缀
            }
        });
        printlnfiles(filelist2);//foreach循环打印的方法

{/tabs-pane} {tabs-pane label="printlnfiles方法"}

代码语言:javascript
代码运行次数:0
运行
复制
public static void printlnfiles(File[] f){
        System.out.println("````````````````````");
        if(f!=null){
            for(File file:f){
                System.out.println(file);
            }
        }
        System.out.println("````````````````````");
    }

和文件操作类似,File对象如果表示一个目录,可以通过以下方法创建和删除目录:

boolean mkdir():创建当前File对象表示的目录; boolean mkdirs():创建当前File对象表示的目录,并在必要时将不存在的父目录也创建出来; boolean delete():删除当前File对象表示的目录,当前目录必须为空才能删除成功。 {/tabs-pane} {tabs-pane label="图片"}

{/tabs-pane}

本文共 700 个字数,平均阅读时长 ≈ 2分钟

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档