腕表手表网站,建设一个网站需要条件,我要注册邮箱,怎么用云校建设学校网站目录 一、File1.定义#xff1a;2.创建File类的对象3.File提供的判断文件类型、获取文件信息功能4.File提供的创建的方法5.File类删除文件的功能6.File提供的遍历文件夹的方法代码演示 二、递归#xff08;了解递归算法#xff0c;以便实现多级遍历找文件#xff09;1.定义… 目录 一、File1.定义2.创建File类的对象3.File提供的判断文件类型、获取文件信息功能4.File提供的创建的方法5.File类删除文件的功能6.File提供的遍历文件夹的方法代码演示 二、递归了解递归算法以便实现多级遍历找文件1.定义2.递归的形式3.递归三要素代码演示4.文件搜索重要 三、字符集1. 标准ASCII字符串2.GBK汉字内码扩展规范国标3.Unicode字符集统一码也叫万国码4.对字符的编码5.对字符的解码代码演示 一、File
1.定义
是java.io.包小的类File类的对象用于代表当前操作系统的文件可以是文件、或文件夹。
2.创建File类的对象
public FileString pathname根据文件路径创建文件对象。public FileString parentString child根据父路径和子路径名字创建文件对象。public FileFile parentString child根据父路径对应文件对象和子路径名字创建文件对象。
3.File提供的判断文件类型、获取文件信息功能
public boolean exists():判断当前文件对象对饮的文件路径是否存在存在返回True。public boolean isFile():判断当前文件对象指代的是否是文件是返回True。public boolean isDirectory():判断当前文件对象指代的是否是文件夹是返回True。public String getName():获取文件的名称包含后缀public long lastModified():获取文件的大小返回字节个数public String getPath():获取创建文件对象使用的路径。public String getAbsolutePath():获取绝对路径。
4.File提供的创建的方法
public boolean createNewFile():创建问价public boolean mkdir():创建一级文件夹public boolean mkdirs():创建多级文件夹
5.File类删除文件的功能
public boolean delete()删除文件、文件夹只能删除空文件夹。
6.File提供的遍历文件夹的方法
public String[] list():获取当前目录下所有的“一级文件名称”到一个字符串数组中去。public File[] listFiles():获取当前目录下所有的“一级文件对象”到一个文件对象数组中去重点
使用listFiles方法时的注意事项
当主调是文件或者路径不存在时返回null当主调是空文件夹时返回一个长度为0的数组。当主调是一个有内容的文件夹时将里面所有一级文件和文件夹的路径放在File数组中返回。当主调是一个文件夹且里面有隐藏文件时将里面所有文件和文件夹的路径放在File数组中返回包括隐藏文件。当主调是一个文件夹但是没有权限访问该文件夹时返回null。
代码演示
package com.item.demo1Flie;
import java.io.File;
import java.io.IOException;
public class Fliedemo1 {public static void main(String[] args) throws IOException {//1.创建File类的对象File f1 new File(D:\\a.docx);File f2new File(D:/a.docx);System.out.println(f1.length());//0System.out.println(f2.length());//0System.out.println(f1.exists());//trueSystem.out.println(f1.isFile());//trueSystem.out.println(f1.isDirectory());//falseSystem.out.println(f1.getName());//a.docx//2.只要带盘符的都称之为绝对路径。//3.相对路径不带盘符的都是相对路径一般都是找到项目根目录下的文件。System.out.println(f1.getPath());//D:/a.docxSystem.out.println(f1.getAbsolutePath());//D:/a.docxFile f3new File(day3\\src\\dilei0.txt);System.out.println(f3.length());//10//4.创建对象代表不存在的文件路径File f4new File(D:/aa.docx);System.out.println(f4.exists());//falseSystem.out.println(f4.createNewFile());//把这个文件创建出来true//5.创建对象代表不存在的文件夹,mkdir(),mkdirs()File f5new File(D:/bb);System.out.println(f5.exists());//falseSystem.out.println(f5.mkdir());//只能创建一级文件夹trueFile f6new File(D:/cc/aa);System.out.println(f5.mkdirs());//可以创建多级文件夹true//6.创建File对象代表存在的文件然后删除File f7new File(D:/a.docx);System.out.println(f7.delete());//删除文件true只能删除空文件夹。//7.可以获取某个目录下的全部一级名称File f8new File(D:/);String[] namesf8.list();for (String name : names) {System.out.println(name);}//8.可以获取某个目录下的全部一级文件对象File[] filesf8.listFiles();for (File file : files) {System.out.println(file.getAbsoluteFile());}}
}二、递归了解递归算法以便实现多级遍历找文件
1.定义
递归是一种算法在程序语言中广泛应用 从形式上说方法调用自身的形式称为方法递归。
2.递归的形式
直接递归方法自己调用自己 间接递归方法调用其他方法其他方法有回调方法自己。
3.递归三要素
递归的公式递归的终点递归的方向要走向终结点。
代码演示
例题计算n的阶乘 需求计算n的阶乘5的阶乘12345等 分析1.f(n)12…*(n-1)*n 2.那么公式等价于f(n)f(n-1)*n 3.则求1-5的阶乘 f(5)f(4)*5 f(4)f(3)*4 f(3)f(2)*3 f(2)f(1)*2 f(1)1
package com.item.demo1Flie;
public class Filedemo2 {public static void main(String[] args) {printA();}public static void printA(){System.out.println(A);printA();//直接调用没有停止条件无限。栈溢出}
}public class Filedomo3 {public static void main(String[] args) {//目的计算阶乘System.out.println(f(5));}public static int f(int n){if(n1){return 1;}return f(n-1)*n;//一遍一遍的去往下调用到最后一步然后从最后一步开始返回最终返回1}
}4.文件搜索重要
package com.item.demo1Flie;import java.io.File;/** 文件搜索**/
public class Filedemo4 {public static void main(String[] args) {//目标完成文件搜索找到D:盘下的QQ.txt文件的位置。File dirnew File(D:/);searchFile(dir,QQ.txt);}public static void searchFile(File dir,String findName){//1.判断极端情况if(!dir.exists()|| dirnull||dir.isFile()){return;//不搜索}//2.获取当前目录下的所有一级文件或者文件夹File[] filesdir.listFiles();//3.判断当前是否存在一级文件对象存在才可以遍历if(files!null files.length0){//4.遍历一级文件对象for(File file:files){//5.判断当前一级文件对象是否是文件if(file.isFile()){//6.判断文件名是否相同if(file.getName().contains(findName)){System.out.println(找到文件file.getAbsoluteFile());}}else{//7.判断当前文件是否是文件夹//8.如果是文件夹则继续递归调用searchFile(file,findName);}}}}
}package com.item.demo1Flie;
import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Arrays;
三、字符集
1. 标准ASCII字符串
定义美国信息交换标准代码包括了英文、符号等。 标准ASCII使用1个字节存储一个字符首位是0因此总共可表示128个字符。
2.GBK汉字内码扩展规范国标
定义汉字编码字符集包含2万多个汉字等字符GBK中一个中文字符编码成两个字节的形式存储。 注意GBK兼容了ACII字符集。 GBK规定汉字的第一个字节的第一位必须是1汉字占2个字符英文、数字占1个字节。
3.Unicode字符集统一码也叫万国码
定义是国际组织制定的可以容纳世界上所有文字、符号的字符集。 UTF-32我4个字节表示一个字符。 UTF-8必须掌握是Unicode字符集的一种编码方案采取可变长编码方案共分四个长度区1个字节2个字节3个字节四个字节。 注意英文字符、数字等只占1个字节兼容标准ASCII编码汉字字符占用3个字节。 UTF-8编码方式二进制
1字节0xxxxxxx2字节110xxxxx 10xxxxxx3字节1110xxxx 10xxxxxx 10xxxxxx4字节11110xxx 10xxxxxx 10xxxxxx
注意1字符编码时使用的字符集和解码时使用的字符集必须一致否则会出现乱码 注意2英文数字一般不会乱码因为很多字符集都兼容了ASCII编码。
4.对字符的编码
byte[] getBytes():指定平台的默认字符集将该String编码为一系列字节将结果存储到一个新的字节数组中。byte[] getBytes(String charsetName):使用指定的字符集将该String编码为一系列字节将结果存储到新的字节数组中。
5.对字符的解码
String(byte[] bytes):通过使用平台的默认字符集解码指定的字节数组来构造新的String。String(byte[] bytes,String charsetName):通过指定的字符集解码指定的字节数组来构造新的String。
代码演示
public class Filedemo5 {public static void main(String[] args) throws UnsupportedEncodingException {//编码String name我爱国;byte[] bytesname.getBytes();//默认平台的UTF-8编码byte[] bytes1name.getBytes(GBK); //指定GBK编码,需要抛出异常System.out.println(bytes.length);//9System.out.println(Arrays.toString(bytes));//[-26, -120, -111, -25, -120, -79, -27, -101, -67]System.out.println(bytes1.length);//6System.out.println(Arrays.toString(bytes1));//[-50, -46, -80, -82, -71, -6]//解码String name1new String(bytes);String name2new String(bytes1,GBK);System.out.println(name1);//我爱国System.out.println(name2);//我爱国}
}