Kennem's Blog
  • 🏠主页
  • 🔍搜索
  • 📚文章
  • ⏱时间轴
  • 🔖标签
  • 🗂️分类
  • 🙋🏻‍♂️关于
主页 » 🧩 标签

Java

Java20天速成——进阶课程(3)

Java20天速成——进阶课程(3) 文件操作 File对象 常用方法 public static void main(String[] args) { // 创建File对象,表示文件test.txt的绝对路径 File f1 = new File("D:/JAVA/JavaSeProMax/file-io-app/src/com/showguan/FileDemo/test.txt"); // 创建File对象,表示文件夹JavaSeProMax的绝对路径 File f2 = new File("D:/JAVA"); // 创建File对象,表示不存在的文件路径t.txt File f3 = new File("D:/JAVA/t.txt"); // 输出文件f1的长度(字节数) System.out.println(f1.length()); // 输出文件夹f2的长度,由于f2表示文件夹,而不是文件,因此返回值没有意义 System.out.println(f2.length()); // 输出文件f3的长度,由于文件路径不存在,因此返回0 System.out.println(f3.length()); // 检查文件f3是否存在,返回false,因为文件路径不存在 System.out.println(f3.exists()); // 创建File对象,表示相对路径下的文件test.txt // 相对路径默认从当前工程的根目录开始寻找,因此文件路径不存在 File f4 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\test.txt"); // 检查文件f4是否存在,返回false,因为文件路径不存在 System.out.println(f4.exists()); // 输出文件f4的长度,由于文件路径不存在,因此返回0 System.out.println(f4.length()); } public static void main(String[] args) { // 创建File对象,表示相对路径下的文件test.txt File f1 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\test.txt"); // 创建File对象,表示文件夹file-io-app的路径 File f2 = new File("file-io-app"); // 检查文件f1是否存在,返回true,因为文件路径存在 System.out.println(f1.exists()); // 检查f1是否表示一个文件,返回true System.out.println(f1.isFile()); // 检查f1是否表示一个文件夹,返回false System.out.println(f1.isDirectory()); // 检查f2是否表示一个文件夹,返回true System.out.println(f2.isDirectory()); // 获取文件f1的名称,输出test.txt System.out.println(f1.getName()); // 获取文件f1的长度(字节数) System.out.println(f1.length()); // 获取文件f1最后修改时间 long time = f1.lastModified(); // 格式化最后修改时间并输出 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); System.out.println(sdf.format(time)); // 获取文件f1的路径(创建时使用的路径),输出相对路径file-io-app\src\com\showguan\FileDemo\test.txt System.out.println(f1.getPath()); // 获取文件f1的绝对路径,输出完整的绝对路径 System.out.println(f1.getAbsolutePath()); } 创建文件、目录 import java.io.File; import java.io.IOException; public static void main(String[] args) throws IOException { // 创建File对象,表示新文件test2.txt的路径 File f1 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\test2.txt"); // 创建新文件test2.txt,如果文件不存在则创建并返回true,否则返回false System.out.println(f1.createNewFile()); // 创建File对象,表示新文件夹aaa的路径 File f2 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\aaa"); // 创建新文件夹aaa,如果文件夹不存在则创建并返回true,否则返回false System.out.println(f2.mkdir()); // 创建File对象,表示新文件夹路径a\b\c File f3 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\a\\b\\c"); // 创建新文件夹路径a\b\c,如果路径中的文件夹不存在则递归创建,创建成功返回true,否则返回false System.out.println(f3.mkdirs()); // 删除文件test2.txt,删除成功返回true,否则返回false System.out.println(f1.delete()); // 删除文件夹a,由于文件夹非空,因此删除失败返回false File f4 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\a"); System.out.println(f4.delete()); } public static void main(String[] args) { // 遍历方法,只能遍历一级文件 File f1 = new File("D:\\JAVA"); // 获取D:\JAVA目录下的所有一级文件名 String[] names = f1.list(); // 遍历打印所有一级文件名 for (String name : names) { System.out.println(name); } // 获取D:\JAVA目录下的所有一级文件对象 File f2 = new File("D:\\JAVA"); // 获取D:\JAVA目录下的所有一级文件对象 File[] files = f2.listFiles(); // 遍历打印所有一级文件对象的绝对路径 for (File file : files) { System.out.println(file.getAbsoluteFile()); } // 尝试获取不存在的目录的一级文件对象,返回null File f3 = new File("D:\\JAVA1"); System.out.println(f3.listFiles()); // null // 尝试获取非文件夹的一级文件对象,返回null File f4 = new File("D:\\JAVA\\test1"); // 因为f4代表的路径不是文件夹,因此listFiles()返回null File[] files4 = f4.listFiles(); System.out.println(Arrays.toString(files4)); // null } 递归查找 public static void main(String[] args) throws IOException { searchFile(new File("D:\\文档"), "23暑期青训营笔记"); // 调用搜索文件的方法 } /** * 递归搜索指定目录下的文件,并打印找到的文件的绝对路径,并使用系统默认程序打开该文件。 * @param dir 要搜索的目录 * @param fileName 要搜索的文件名 * @throws IOException 如果发生I/O错误 */ public static void searchFile(File dir, String fileName) throws IOException { // 如果目录为空、不存在或者是文件,则直接返回 if(dir==null || !dir.exists() || dir.isFile()){ return ; } // 获取目录下的所有文件和子目录 File[] files = dir.listFiles(); // 如果目录下存在文件 if(files!=null && files.length>0){ // 遍历目录下的所有文件和子目录 for (File file : files) { // 如果是文件 if(file.isFile()){ // 判断文件名是否包含指定的文件名 if(file.getName().contains(fileName)){ System.out.println("找到了!" + file.getAbsoluteFile()); // 打印找到的文件的绝对路径 Runtime runtime = Runtime.getRuntime(); runtime.exec(file.getAbsolutePath()); // 使用系统默认程序打开该文件 return; // 找到文件后直接返回 } }else{ // 如果是目录,则递归调用搜索文件的方法 searchFile(file, fileName); } } } } 递归删除 public static void main(String[] args) throws IOException { File file = new File("D:\\JAVA\\test1\\test"); // 要删除的目录的路径 deleteDir(file); // 调用删除目录的方法 } /** * 递归删除目录及其所有子目录和文件。 * @param dir 要删除的目录 */ public static void deleteDir(File dir){ // 如果目录为空或者不存在,则直接返回 if(dir==null || !dir.exists()){ return ; } // 如果是文件,则直接删除并返回 if(dir.isFile()){ dir.delete(); return; } // 获取目录下的所有文件和子目录 File[] files = dir.listFiles(); // 如果目录为空,则直接返回 if(files==null){ return; } // 遍历目录下的所有文件和子目录 for (File file : files) { if(file.isFile()){ // 如果是文件,则直接删除 file.delete(); } deleteDir(file); // 递归删除子目录 } dir.delete(); // 删除当前目录 } 字符集 UTF-32 ...

2024-04-19 · 17 分钟 · 8234 字 · updated: 2024-04-19 · ShowGuan

Java20天速成——进阶课程(2)

Java20天速成——进阶课程(2) 正则表达式 符号 含义 举例 [] 匹配方括号内的任一字符 [abc] ^ 匹配除指定字符外的任意字符 [^abc] && 匹配两个字符集的交集,需作为整体出现 [a-z&&m-p] . 匹配除换行符外的任意字符 a.b (匹配 “a” 后接任意字符,再接 “b”) \ 转义字符,用于匹配特殊字符 \\d \\d 匹配数字 0-9 \\d+ \\D 匹配非数字字符 \\D+ \\s 匹配空白字符 \s匹配空格、制表符、换行符等等 \\S 匹配非空白字符 \\S+ (匹配非空白字符序列) \\w 匹配单词字符 [a-zA-Z_0-9] \\W 匹配非单词字符 [^\w] * 匹配前面的元素零次或多次,即可有可无 a*b (匹配 “b”、“ab”、“aab”、等等) ? 匹配前面的元素零次或一次,即可有可无 colou?r (匹配 “color” 或 “colour”) () 分组,将其中的字符视为一个单元 a(bc)+ \f 匹配换页符 \f | `|` | 或,用于匹配多个模式中的任意一个 | `ab\|AB` | public static void method1() { // 给定的字符串包含了电话号码和邮箱地址的信息 String data = " 来黑马程序员学习Java,\n" + " 电话:1866668888,18699997777\n" + " 或者联系邮箱:boniu@itcast.cn,\n" + " 座机电话:01036517895,010-98951256\n" + " 邮箱:bozai@itcast.cn,\n" + " 邮箱:dlei0009@163.com,\n" + " 热线电话:400-618-9090 ,400-618-4000,4006184000,4006189090"; // 定义正则表达式来匹配电话号码和邮箱地址 String regex = "(1[3-9]\\d{9})|" + "(0\\d{2,9}-?\\d{7,18})|" // 匹配固定电话号码,包括区号和分机号 + "(\\w{2,}@\\w{2,20}(\\.\\w{2,10}){1,2})|" // 匹配邮箱地址 + "(400-?\\d{3,7}-?\\d{3,7})"; // 匹配400电话号码,包括可能的分机号 // 编译正则表达式 Pattern pattern = Pattern.compile(regex); // 创建匹配器对象 Matcher matcher = pattern.matcher(data); // 循环查找匹配项并打印 while(matcher.find()){ String res = matcher.group(); // 获取匹配到的字符串 System.out.println(res); } } String s1 = "古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴"; System.out.println(s1.replaceAll("\\w+", "-")); String s2 = "我我我喜欢编编编编编编编编编编编编程程程"; System.out.println(s2.replaceAll("(.)\\1+", "$1")); String s3 = "古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴"; String[] names = s3.split("\\w+"); System.out.println(Arrays.toString(names)); 异常 Error: 代表的系统级别错误(属于严重问题), 也就是说系统一旦出现问题,sun公司会把这些问题封装成Error对象给出了,即Error是Sun公司自己用的,而不是给程序员用的 ...

2024-04-16 · 24 分钟 · 11670 字 · updated: 2024-04-15 · ShowGuan

Java20天速成——进阶课程(1)

进阶课程(1) OOP static 静态, 可以修饰成员变量,成员方法 成员变量按照有无static修饰,分为两种 类变量 : 有static修饰,属于类,在计算机里只有一份,会被类的全部对象共享 实例变量(对象的变量):无static修饰,属于每个对象 // 类变量推荐赋值方式 Student.name = "Java"; // 不推荐赋值方式 Student s1 = new Student(); s1.name = "True Java"; Student s2 = new Student(); s2.name = "False Java"; System.out.println(s2.name); //False Java System.out.println(Student.name); //False Java // 成员变量 s1.age = 25; s2.age = 15; System.out.println(s1.age); //25 System.out.println(s2.age); //15 //User类 public static int number; public User(){ number+=1; //类中访问自己的变量可以不写 User(). } //Test类 public static void main(String[] args) { User u1 = new User(); User u2 = new User(); User u3 = new User(); System.out.println(User.number); //3 } 类方法:有static修饰的成员方法,属于类。 实例方法:无static修饰的成员方法,属于对象 //Student double score; public static void printHelloWorld(){ System.out.println("Hello World"); System.out.println("Hello World"); } public void printPass(){ System.out.println("成绩:" + (score >= 60 ? "及格" : "不及格")); } //Test Student.printHelloWorld();//Hello World Hello World Student s = new Student(); s.score = 100; s.printPass(); //成绩:及格 类方法的常见应用案例 类方法最常见的应用场景是做工具类 工具类:工具类中的方法都是一些类方法,每个方法都是用来完成一个功能的,工具类是给开发人员共同使用的 ...

2024-04-15 · 23 分钟 · 11233 字 · updated: 2024-04-15 · ShowGuan

Java20天速成——基础课程

JAVA 20天速成 有志者事竟成 没有完完全全的投入,检测,学习是学不到东西的。 自欺欺人,眼高手低是绝对没有任何作用的。 JAVA背景信息 JAVA是一门高级编程语言。 ...

2024-04-15 · 24 分钟 · 11937 字 · updated: 2024-10-12 · ShowGuan
« 上一页 
© 2025 Kennem's Blog · Powered by Hugo & PaperMod
👤 Visitors: 👀 Views: