Java-file,递归找文件,字符集编解码

该博客介绍了Java中File类的基本使用,包括读取文件大小、相对路径、创建目录、文件的绝对路径、最后修改时间等操作。同时展示了如何递归查找文件及字符编码的转换,如UTF-8和GBK之间的编码解码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

file类基本使用


import java.io.File;
import java.io.IOException;
import java.sql.SQLOutput;
import java.text.SimpleDateFormat;

public class Filedemo {
    public static void main(String[] args) throws IOException {
        File f = new File("D:\\zhengqinjie\\javaCode\\javaproject\\file-io-app\\src\\1234.jpg");
        long size = f.length();
        System.out.println("輸出字節大小" + size);
        File f2 = new File("file-io-app\\src\\1234.jpg");
        System.out.println("相對路徑,是相對工程,從工程目錄開始計算,即从模块找," + f2.length());
        File f3 = new File("file-io-app\\src");
        System.out.println("可创建目录对象,但没有大小" + f3.length() + f3.exists());
        System.out.println("绝对路径"+f.getAbsolutePath());
        System.out.println("得到创建对象时的路径"+f2.getPath());
        System.out.println("文件名称带后缀"+f2.getName());
        File f4 = new File("file-io-app\\src\\123.txt");
        long time =f4.lastModified();
        System.out.println("最后修改时间,毫秒"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time));
        System.out.println("是否为文件"+f4.isFile());
        System.out.println("是否为目录"+f4.isDirectory());
        System.out.println("文件是否存在"+ f4.exists());

        //===========================================================
        File f5 = new File("file-io-app\\src\\123.txt");
        System.out.println("文件存在时,不可创建,返回false:" + f5.createNewFile() );
        File f6 = new File("file-io-app\\src\\1234.txt");
        System.out.println("文件不存在时,可创建,返回true:" + f6.createNewFile() );
        //===========================================================
        File f7 = new File("file-io-app\\src\\test");
        System.out.println("创建一级目录,file-io-app\\src需要存在"+ f7.mkdir());
        File f8 = new File("file-io-app\\src\\test\\test2\\test4");
        System.out.println("创建多级目录,"+ f8.mkdirs());
        System.out.println("删除空目录"+f8.delete());
        System.out.println("删除文件"+f5.delete());

        //========================================
        File f9 = new File("D:\\zhengqinjie");
        String[] file = f9.list();
        for (String s : file) {
            System.out.println("只取名称"+s);
        File[] filelist = f9.listFiles();
            for (File file1 : filelist) {
                System.out.println("文件对象,较常用API"+ file1.getAbsolutePath());
            }

        }
    }
}

 递归三要素

 递归找文件

import java.io.File;

public class Findfile {
    public static void main(String[] args) {
        File f = new File("D:\\zhengqinjie\\新建文件夹\\新建文本文档.txt");
        System.out.println(findfilename(f, "02、自拍,细节提升逼格.flv"));
    }
    public static String findfilename(File dir, String name){
        if (dir == null || dir.isFile()){
            return "目录无文件或路径是文件名";
        }
        File[] filelists = dir.listFiles();
        if(filelists == null || filelists.length == 0){
            return "目录无文件或目录名不存在";
        }
        for (File file : filelists) {
            String filename = file.getName();
            if(file.isFile() && filename.equals(name)){
                return file.getAbsolutePath();
            }else{
                findfilename(file,name);
            }
        }
    return "当前目录下找不到目标文件";
    }
}

字符编码解码


import java.io.UnsupportedEncodingException;
import java.util.Arrays;

public class Charestdemo {
    public static void main(String[] args) throws UnsupportedEncodingException {
        String name ="我爱你中国";
        byte[] bytes = name.getBytes();
        System.out.println("默认使用utf-8编码,一个中文占三个字节"+Arrays.toString(bytes));
        byte[] bytes1 = name.getBytes("GBK");
        System.out.println("指定GBK编码,中文占2字节"+Arrays.toString(bytes1));

        String debyte = new String(bytes);
        String debyte1 = new String(bytes1,"GBK");
        System.out.println("默认使用utf-8解码:" + debyte);
        System.out.println("使用GBK解码,注意用什么编码,就需要用什么解码:" + debyte1);



    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

郑*杰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值