文章目录
- File类
- 创建对象
- 判断文件类型
- 创建/删除文件
- 遍历文件夹
- 文件搜索(用递归实现文件的多级遍历)
- 字符集
- 常用字符集
- 编码与解码
File类
创建对象
- File对象既可以代表文件、也可以代表文件夹。
- File封装的对象仅仅是一个路径名,这个路径可以是存在的,也允许是不存在的。
判断文件类型
创建/删除文件
注意:delete方法默认只能删除文件和空文件夹,删除后的文件不会进入回收站。
遍历文件夹
文件搜索(用递归实现文件的多级遍历)
需求:从D:盘中,搜索“QQ.exe” 这个文件,找到后直接输出其位置。
分析:
- 先找出D:盘下的所有一级文件对象
- 遍历全部一级文件对象,判断是否是文件
- 如果是文件,判断是否是自己想要的
- 如果是文件夹,需要继续进入到该文件夹,重复上述过程
public class Test4 { static void main() throws IOException { search("D:/","QQMini"); } private static void search(String path,String fileName) throws IOException { File file=new File(path); if(file==null||!file.exists()||file.isFile()){ return;//代表无法搜索 } File[] files=file.listFiles(); if(files!=null&&files.length>0){ for (File file1 : files) { if(file1.isFile()){ if(file1.getName().contains(fileName)){ System.out.println("找到了"+fileName+"位置:"+file1.getAbsoluteFile()); Runtime runtime=Runtime.getRuntime(); System.out.println(file1.getName()); System.out.println(file1.getAbsolutePath()); runtime.exec(file1.getAbsolutePath()); return; } } else{ search(file1.getPath(),fileName); } } } } }字符集
常用字符集
- ASCII码:英文和数字一字节
- GBK:英文和数字一字节,汉字两字节
- UTF-8:英文和数字一字节,汉字三字节
注意1:字符编码时使用的字符集,和解码时使用的字符集必须一致,否则会出现乱码
注意2:英文,数字一般不会乱码,因为很多字符集都兼容了ASCII编码。
编码与解码
String类下的方法:
- byte[] getBytes():默认编码
- byte[] getBytes(String charsetName):指定编码
String类的构造器:
- String(byte[] bytes):使用默认编码解码
- String(byte[] bytes, String charsetName)):指定编码解码