Java学习入门:基础知识一网打尽

发表时间: 2024-06-03 02:21

File类

  • File类概述

① file类在java.io.File包,代表操作系统的文件对象

② 定位文件,获取文件信息、删除文件、创建文件等

  • File对象创建
import java.io.File;public class Demo1 {    public static void main(String[] args) {        // 创建对象        File f = new File("D:\Downloads\4e3987345828_0.png");        double size = f.length();        System.out.println(size);    }}
  • File类常见API

① 判断文件类型、获取文件信息

② 创建文件、删除文件

import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;public class Demo2 {    public static void main(String[] args) throws IOException {        // 创建对象        File f = new File("D:\Downloads\4e3987345828_0.png");        // 获取文件绝对路径        System.out.println(f.getAbsolutePath());        // 获取文件定义时使用的路径        System.out.println(f.getPath());        // 获取文件名称,带后缀        System.out.println(f.getName());        // 获取文件大小,字节数        System.out.println(f.length());        // 获取文件最后修改时间        long time = f.lastModified();        System.out.println(new SimpleDateFormat("yyyy-mm-dd HH:mm:ss").format(time));        // 判断是文件        System.out.println(f.isFile());        // 判断是目录        System.out.println(f.isDirectory());        // 创建一个空文件        File cf = new File("hello-app\src\com\itheima\file\1.txt");        System.out.println(cf.createNewFile());        // 创建单个目录        File mf = new File("hello-app\src\com\itheima\file\mk");        System.out.println(mf.mkdir());        // 创建多级目录        File msf = new File("hello-app\src\com\itheima\file\msk\aa");        System.out.println(msf.mkdirs());        // 删除文件或空目录        System.out.println(cf.delete());        System.out.println(msf.delete());    }}

③ 遍历文件

import java.io.File;import java.io.IOException;public class Demo3 {    public static void main(String[] args) throws IOException {        // 创建对象        File f = new File("D:\Downloads\");        // 遍历文件,获取名称        String[] fileName = f.list();        for (String s : fileName) {            System.out.println(s);        }        // 一级文件对象        File[] files = f.listFiles();        for (File file : files) {            System.out.println(file.getAbsolutePath());        }    }}

方法递归

  • 方法自己或间接调用自己的形式称为方法递归
  • 递归的形式:直接递归、间接递归
public class Demo4 {    public static void main(String[] args)  {        test();        test1();    }    /**     * 直接递归     */    public static void test() {        System.out.println("test");        test();    }    /**     * 间接递归     */    public static void test1() {        System.out.println("test1");        test2();    }    public static void test2() {        System.out.println("test2");        test1();    }}

字符集

  • 计算机底层中只能存储二进制
  • 二进制可以转十进制
  • ASCII字符集,一个字符占一个字节
  • GBK字符集,兼容ASCII码表,一个字符占两个字节
  • Unicode码表,统一编码,容纳世界常见字符和符号

① 包含UTF-8、UTF-16、UTF-32

② UTF-8编码后一个字符占三个字节

③ UTF-8兼容ASCII码表

  • 编码前和编码后的字符集要一致,否则会出现乱码
  • 字符集编码和解码
import java.io.UnsupportedEncodingException;import java.util.Arrays;public class Demo5 {    public static void main(String[] args) throws UnsupportedEncodingException {        // String 编码,把文字转换成字节        String name = "张三123abc";        // 默认UTF-8        byte[] bytes = name.getBytes();        System.out.println(Arrays.toString(bytes));        // 使用GBK        byte[] bytes1 = name.getBytes("GBK");        System.out.println(Arrays.toString(bytes1));        // String 解码        String s = new String(bytes);        System.out.println(s);        String s1 = new String(bytes1, "GBK");        System.out.println(s1);    }}