Java进阶(File,方法递归,字符集)

File

  • File是Java.io包下的类。File类的对象,用于代表当前操作系统的文件(可以是文件,也可以是文件夹)
  • File只能对文件本身进行操作,不能读写文件里面存储的数据。
  • 创建File创建对象代表文件/目录

IO流(读写数据)

  • 示例:
import java.io.File;
import java.io.IOException;

public class Test1 {
    public static void main(String[] args) throws IOException {
        //1.创建File对象,去获取某个文件的信息
        File file=new File("D:/aaa.txt");

        System.out.println(file.length());//字节个数
        System.out.println(file.getName());//获取名称
        System.out.println(file.isFile());//判断是否为文件
        System.out.println(file.isDirectory());//判断是否为文件夹
        //2.创建对象代表不存在的文件路径
        File f1=new File("D:/aaa.txt");
        System.out.println(f1.exists());//判断文件是否存在
        System.out.println(f1.createNewFile());//把这个文件创建出来
        //3.创建对象代表不存在的文件夹路径
        f1.mkdir();//只能创建一级文件夹
        f1.mkdirs();//可以创建多级文件夹
        f1.delete();//删除文件/文件夹(只能删除空文件夹)
        //4.获取某个文件目录下的全部一级文件名称
        File f2=new File("D:/aaa/aaa.txt");
        String[] names=f2.list();
        for (String name : names) {
            System.out.println(name);
        }
        //获取某个文件目录下的全部一级文件对象
        File[] files=f2.listFiles();//创建文件数组来存储一个文件目录下的所有文件对象
        for (File file1 : files) {
            System.out.println(file1.getName());//拿到文件目录下的所有文件对象后,再进行操作
        }
    }
}
  • 递归算法
    • 方法调用自身的形式称为方法递归。
    • 递归公式,例:f(n)=f(n-1)*n
    • 要有递归终结点,例: f(1)
    • 递归的方向必须走向终结点

字符集

  • ASCII码使用一个字节存储一个字符,首位为0

  • GBK(汉字编码字符集),GBK中一个中文字符编码成两个字节的形式存储,汉字的第一个字节的第一位必须是1。

  • UTF-8是Unicode字符集的一种编码方案,采用可变长编码方案。汉字占3个字节,英文数字占一个字节。

  • 一个字节表示:0xxxxxxx。

  • 两个字节表示:110xxxxx 10xxxxxx。

  • 三个字节表示:1110xxxx 10xxxxxx 10xxxxxx。

  • 四个字节表示:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx。

  • 编码和解码使用的字符集必须一致,否则会出现乱码。

  • 对字符编码解码:

    public class Test2 {
        public static void main(String[] args) throws Exception {
            //写程序实现字符编码和解码
            //1.编码
            String name="中文汉字aaa123";
            byte[] bytes = name.getBytes();//默认平台UTF-8编码
            byte[] bytes1=name.getBytes("GBK");//指定GBK进行编码
    
            //2.解码
            String name11=new String(bytes);//默认UTF-8解码
            String name22=new String(bytes1,"GBK");//指定用GBK进行解码,否则会出现乱码
            System.out.println(name11);
            System.out.println(name22);
        }
    }
    
posted @ 2025-11-30 22:45  芒果学代码  阅读(0)  评论(0)    收藏  举报