免费链接转换短网址,搜索优化的培训免费咨询,做交互设计的网站,专业的餐饮网站建设File:代表文本
IO流#xff1a;读写数据
1、 File 类构建对象的方式是什么样的#xff1f; File 的对象可以代表哪些东西#xff1f; 注意 File 对象既可以代表文件、也可以代表文件夹。 ● File 封装的对象仅仅是一个路径名#xff0c;这个路径可以是存在的#xff0c… File:代表文本
IO流读写数据
1、 File 类构建对象的方式是什么样的 File 的对象可以代表哪些东西 注意 · File 对象既可以代表文件、也可以代表文件夹。 ● File 封装的对象仅仅是一个路径名这个路径可以是存在的也允许是不存在 。
2、绝对路径和相对路径是什么意思
绝对路径从盘符开始 File file1 new File ( D :\\ xinbao \\ a . txt ); .相对路径不带盘符默认直接到当前工程下的目录寻找文件。 File file3 new File (模块名\ a . txt ); 创建对象 package com.xinbao.d1_file;import java.io.File;public class FileTest1_1 {public static void main(String[] args) {//1、创建一个File对象指代某个具体的文件//路径分隔符//File f1 new File(C:\\Users\\86182\\Desktop\\c基础.txt);
// File f1 new File(C:/Users/86182/Desktop/c基础.txt);File f1 new File(C: File.separator Users File.separator 86182 File.separator Desktop/c基础.txt);System.out.println(f1.length());//文件大小File f2 new File(C:\\Users\\86182\\Desktop);System.out.println(f2.length());//File对象可以指代一个不存在的文件路径File f3 new File(C:\\Users\\86182\\Desktop\\c.txt);System.out.println(f3.length());System.out.println(f3.exists());//如果要定位的文件在模块中应该怎么定位呢//绝对路径带盘符的//File f4 new File(E:\\JVsoft\\file-io-app\\src\\com\\xinbao\\d1_file\\xinbao);//相对路径不带盘符默认直接去工程下寻找文件File f4 new File(com\\xinbao\\d1_file\\xinbao);System.out.println(f4.length());}}E:\JVsoft\Java\jdk-17\bin\java.exe -javaagent:E:\JVsoft\IntelliJIDEA2021.1.1\lib\idea_rt.jar13344:E:\JVsoft\IntelliJIDEA2021.1.1\bin -Dfile.encodingUTF-8 -classpath E:\JVsoft\api-app3-3\out\production\file-io-app FileTest1
5179
16384
0
false
6进程已结束退出代码为 0方法
判断文件类型获取文件信息 package com.xinbao.d1_file;import java.io.File;
import java.text.SimpleDateFormat;public class FileTest2 {public static void main(String[] args) {//1、创建文件对象指代某个文件File f1 new File(E:\\JVsoft\\file-io-app\\src\\com\\xinbao\\d1_file\\xinbaby);File f2 new File(E:\\JVsoft\\file-io-app\\src\\com\\xinbao\\d1_file);File f3 new File(E:\\JVsoft\\file-io-app\\src\\com\\xinbao\\d1_file\\xinbao);//2、判断当前文件对象对应的路径是否存在存在返回trueSystem.out.println(f1.exists());//falseSystem.out.println(f2.exists());//true//3、判断当前文件对象指代的是否是文件是文件返回true反之System.out.println(f3.isFile());//true//4、判断当前文件对象指代的是否是文件夹是文件夹返回true反之System.out.println(f2.isDirectory());//true//5、获取文件名称包括后缀System.out.println(f1.getName());//xinbaby//6、获取文件大小返回字节数System.out.println(f3.length());//7、获取文件的最后修改时间long time f3.lastModified();SimpleDateFormat date new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);System.out.println(date.format(time));//8、获取创建文件对象时使用的路径File f4 new File(E:\\fpga\\课程设计\\I型指令设计.ppt);File f5 new File(file-io-app\\src\\com\\xinbao\\d1_file);System.out.println(f4.getPath());System.out.println(f5.getPath());//9、获取绝对路径System.out.println(f4.getAbsolutePath());System.out.println(f5.getAbsolutePath());}
}E:\JVsoft\Java\jdk-17\bin\java.exe -javaagent:E:\JVsoft\IntelliJIDEA2021.1.1\lib\idea_rt.jar13622:E:\JVsoft\IntelliJIDEA2021.1.1\bin -Dfile.encodingUTF-8 -classpath E:\JVsoft\api-app3-3\out\production\file-io-app com.xinbao.d1_file.FileTest2
false
true
true
true
xinbaby
8
2023-10-29 22:38:25
E:\fpga\课程设计\I型指令设计.ppt
file-io-app\src\com\xinbao\d1_file
E:\fpga\课程设计\I型指令设计.ppt
E:\JVsoft\api-app3-3\file-io-app\src\com\xinbao\d1_file进程已结束退出代码为 0创建删除文件、文件夹 package com.xinbao.d1_file;import java.io.File;
import java.io.IOException;public class FileTest3 {public static void main(String[] args) throws Exception {//1、创建一个新文件文件内容为空创建成功返回true反之File f1 new File(E:/JVsoft/luluxiao.txt);System.out.println(f1.createNewFile());//IOException,害怕E盘不存在throw出去//2、创建文件夹注意只能创建一级文件夹File f2 new File(E:/JVsoft/luluxiao);File f3 new File(E:/JVsoft/pape/mark);System.out.println(f2.mkdir());System.out.println(f3.mkdir());//false 多级//3、创建文件夹注意可以创建多级文件夹File f4 new File(E:/JVsoft/pp/bk/pp);System.out.println(f4.mkdirs());//4、删除文件或者空文件夹注意不能删除非空文件夹System.out.println(f1.delete());//非空文件File f5 new File(E:/JVsoft/pp);System.out.println(f5.delete());//非空文件夹System.out.println(f2.delete());//空文件夹}
}E:\JVsoft\Java\jdk-17\bin\java.exe -javaagent:E:\JVsoft\IntelliJIDEA2021.1.1\lib\idea_rt.jar8822:E:\JVsoft\IntelliJIDEA2021.1.1\bin -Dfile.encodingUTF-8 -classpath E:\JVsoft\api-app3-3\out\production\file-io-app com.xinbao.d1_file.FileTest3
true
true
false
false
true
false
true进程已结束退出代码为 0遍历文件夹 使用 listFiles 方法时的注意事项 .当主调是文件或者路径不存在时返回 null 当主调是空文件夹时返回一个长度为0的数组 .当主调是一个有内容的文件夹时将里面所有一级文件和文件夹的路径放在 File 数组中返回 .当主调是一个文件夹且里面有隐藏文件时将里面所有文件和文件夹的路径放在 File 数组中返回包含隐藏文件
.当主调是一个文件夹但是没有权限访问该文件夹时返回 null
package com.xinbao.d1_file;import java.io.File;
import java.io.IOException;
import java.util.Arrays;public class FileTest4 {public static void main(String[] args) throws Exception {//public String [] list ()//获取当前目录下所有的一级文件名称到一个字符串数组中去返回。File f1 new File(E:\\硬件课设);String[] files f1.list();for (String file : files) {System.out.println(file);}//public File [] listFiles ()//获取当前目录下所有的一级文件对象到一个文件对象数组中去返回重点File[] filesArray f1.listFiles();for (File file : filesArray) {System.out.println(file.getAbsolutePath());}File f new File(E:\\硬件课设/aaa);//不存在File[] files1 f.listFiles();//nullSystem.out.println(Arrays.toString(files1));File f3 new File(E:\\硬件课设\\bbb.txt);System.out.println(f3.createNewFile());//空文件File[] f4 f3.listFiles();System.out.println(Arrays.toString(f4));//nullFile f5 new File(E:\\硬件课设/ccc);System.out.println(f5.mkdir());System.out.println(Arrays.toString(f5.listFiles()));//[]}
}E:\JVsoft\Java\jdk-17\bin\java.exe -javaagent:E:\JVsoft\IntelliJIDEA2021.1.1\lib\idea_rt.jar9178:E:\JVsoft\IntelliJIDEA2021.1.1\bin -Dfile.encodingUTF-8 -classpath E:\JVsoft\api-app3-3\out\production\file-io-app com.xinbao.d1_file.FileTest4
bbb
bbb.txt
BIN
README.TXT
UPDATES
E:\硬件课设\bbb
E:\硬件课设\bbb.txt
E:\硬件课设\BIN
E:\硬件课设\README.TXT
E:\硬件课设\UPDATES
null
false
null
true
[]进程已结束退出代码为 0方法递归
什么是方法递归 .递归是一种算法在程序设计语言中广泛应用。 ·从形式上说方法调用自身的形式称为方法递归 recursion )。
递归的形式 直接递归方法自己调用自己。 间接递归方法调用其他方法其他方法又回调方法自己。 使用方法递归时需要注意的问题 递归如果没有控制好终止会出现递归死循环导致栈内存溢出错误。
package com.xinbao.d2_recursion;public class RecursionTest1 {public static void main(String[] args) {test1();}//直接方法递归public static void test1() {System.out.println(---test1---);test1();//死循环栈内存溢出}//间接方法递归public static void test2(){System.out.println(---test2---);test3();}public static void test3() {test2();//间接递归}
}算法思想
明确递归的公式递归的终结点算法必须走向终结点
案例1计算n的阶乘 package com.xinbao.d2_recursion;public class RecursionTest2 {public static void main(String[] args) {System.out.println(f(5));//120}public static int f(int n) {if (n 1){return 1;}else{return f(n - 1) * n;}}
}案例2计算1 ~ n的和
package com.xinbao.d2_recursion;public class RecursionTest3 {public static void main(String[] args) {System.out.println(f(10));//55}public static int f(int n) {if (n 1){return 1;}else{return f(n - 1) n;}}
}案例 文件搜索 在 Data ( D :中搜索 需求从 D 盘中搜索 QQ . exe 这个文件找到后直接输出其位置。分析 ①先找出 D 盘下的所有一级文件对象 ②遍历全部一级文件对象判断是否是文件 如果是文件判断是否是自己想要的 如果是文件夹需要继续进入到该文件夹重复上述过程
package com.xinbao.d2_recursion;import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;public class RecursionTest4 {public static void main(String[] args) throws Exception {//C:\Users\86182\Desktop\WPS Office.lnksearchFile(new File(E:/), WPS Office);}/*** 去目录下搜索某个文件* param dir 目录* param fileName 文件名*/public static void searchFile(File dir, String fileName) throws Exception {//1、把非法情况都拦截if (dir null || !dir.exists() || dir.isFile()){return;//代表无法搜索}//2、dir不是null存在一定是目录对象//获取当前目录下的全部一级文件对象File[] files dir.listFiles();//3、判断当前目录下是否存在一级文件对象以及是否可以拿到一级文件对象if (files ! null files.length 0){//4、遍历全部一级文件对象for (File file : files) {//5、判断这个文件对象是文件还是文件夹if (file.isFile()){//是文件判断文件名是否匹配if (file.getName().contains(fileName)){System.out.println(找到了 file.getAbsolutePath());
// Runtime runtime Runtime.getRuntime();
// File f new File(C:\\Users\\Public\\Desktop\\Microsoft Edge.lnk);
// runtime.exec(f.getAbsolutePath());}}else{//是文件夹递归searchFile(file,fileName);}}}//System.out.println(没找到);}
}E:\JVsoft\Java\jdk-17\bin\java.exe -javaagent:E:\JVsoft\IntelliJIDEA2021.1.1\lib\idea_rt.jar59383:E:\JVsoft\IntelliJIDEA2021.1.1\bin -Dfile.encodingUTF-8 -classpath E:\JVsoft\api-app3-3\out\production\file-io-app com.xinbao.d2_recursion.RecursionTest4
找到了E:\国赛\预测结果\无风化预测\WPS Office.lnk进程已结束退出代码为 0