网站免费正能量软件/百度推广费2800元每年都有吗
操作数组的工具类:Arrays;Arrays数组
操作集合工具类:collections; Collection集合
- Collections是一个操作set list map等集合的工具类
- Collections中提供了一系列静态的方法对集合进行排序,查询等操作
排序操作:
- sort(List);根据元素的自然排序对指定的list集合按照顺序排序
- sort(List,Comparator);根据指定comparator产生的顺序对集合list进行排序
- reverse(List);反转list集合中的元素
- shuffle(List);对list集合的元素随机排序
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Objects;public class CollectionsDemo01 {public static void main(String[] args) {ArrayList list=new ArrayList();list.add("666");list.add("111");list.add("222");list.add("333");list.add("555");System.out.println("排序之前:"+list);Collections.sort(list);//无返回值 根据元素的自然排序对指定的list集合按照升序排序System.out.println("排序之后:"+list);Collections.reverse(list);System.out.println("反转之后:"+list);Collections.shuffle(list);System.out.println("随机之后:"+list);/*ArrayList list1=new ArrayList();list1.add(new Student("333",30));list1.add(new Student("222",20));list1.add(new Student("444",35));//Collections.sort(list1); //报错,没有自然排序System.out.println("排序之前:"+list1);//定制排序Comparator c=new Comparator() {@Overridepublic int compare(Object o1, Object o2) {//if(o1 instanceof 类型)if (o1 instanceof Student && o2 instanceof Student){Student s1=(Student)o1;Student s2=(Student)o2;return s1.name.compareTo(s2.name);}else{throw new RuntimeException("类型不匹配");}}};Collections.sort(list1,c);System.out.println("排序之后:"+list1);*/}
}
class Student{String name;int age;public Student(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return age == student.age &&Objects.equals(name, student.name);}@Overridepublic int hashCode() {return Objects.hash(name, age);}
}
IO流(Input输入/Output输出)
用来操作文件内容的技术,输入和输出都是针对程序来说的,以程序为主
- 假设需要将D盘中的dd.txt文件中的内容读取到java程序中来(Input输入)
- 假设程序需要将字符串写入到D盘中的dd.tet文件(Output)
- I(Input):从文件中读取内容到程序中
- O(Output):从程序中将数据写到文件中
File类(文件类):
- java.io.file类:文件和文件路径的抽象表现形式(一个File对象可以用来表示一个文件或目录)
- File能新建/删除/重命名文件或目录,但是不能访问文件中的内容
- 如果需要访问文件内容本身,需要使用IO流操作
File构造方法:
- 绝对路径:包含盘符在内的文件或者目录的路径
- 相对路径:相较于某个路径下指明的路径
- File(String filepath);以filepath为路径创建File对象,可以是绝对路径也可以是相对路径
- File(String parentPath,String childPath);以parentPath为父路径,以childPath为子路径创建File对象
- File(String file,String childPath);根据一个父file对象和一个子文件路径创建File对象
import java.io.File;
public class FileDemo01 {public static void main(String[] args) {// File(String filepath);//1.//只创建了一个对象, 不会考虑路径是否正确,只有在操作时才会检查路径是否正确File file=new File("D:\\JavaDemo2022-213\\demo.txt");//指的是该项目路径下的vip09.txt文件对象File file1=new File("Vip09.txt");//2.File file2=new File("D:\\JavaDemo2022-213","demo.txt");//3.File file3=new File("D:\\JavaDemo2022-213");File file4=new File(file3,"demo.txt");}
}
File普通方法:
-
创建/删除
创建:对应的文件或者目录boolean createNewFile();创建文件,如果指定路径下的文件存在,则不创建返回false;指定路径下文件不存在,则创建并返回true指定文件的父级目录必须存在;否者提示父级目录找不到!!!boolean mkdir();创建文件目录 如果此文件上层目录不存在,则创建失败,返回falseboolean mkdirs();创建文件目录如果此文件目录的上级目录不存在,一并创建,并返回true
-
删除硬盘中相对应的文件或者目录
boolean delete();一定是空目录才可以删除!!
import java.io.File;
import java.io.IOException;public class FileDemo02 {public static void main(String[] args) throws IOException {
// File file=new File("D:\\Dee\\demo.txt");File file1=new File("JavaDemo2022-213.txt");
// System.out.println("file:"+file.createNewFile());//false 该路径不存在System.out.println("file1:"+file1.createNewFile());//trueSystem.out.println("马上删除file1:"+file1.delete());//true,删除指定的文件File file2=new File("D:\\aa\\bb\\cc");File file3=new File("D:\\aa\\bb\\cc");System.out.println("使用mkdir创建目录:"+file3.mkdir());//falseSystem.out.println("使用mkdirs创建目录:"+file2.mkdirs());//true/*delete:如果file对象的路径表示是一个文件,那么直接删除该文件,返回true,反之返回false如果file对象的路径表示的是一个目录,那么先判断目录下是否还有其他文件或者目录如果有则删除失败,返回false如果没有则删除成功,返回true*/System.out.println("使用delete删除file3:"+file3.delete());//一定是空目录才可以删除!!}
}
-
获取
绝对路径: String getAbsolutePath(); 获取路径: String getPath();获取的是创建File对象填入的路径 获取文件名: String getName();获取文件或目录的名字 获取文件的上层目录 String getParent() 根据创建的对象时填入的路径 获取文件的长度(不能获取目录的长度) Long length();
import java.io.File;
import java.io.IOException;public class FileDemo03 {public static void main(String[] args) throws IOException {File file=new File("vip09.txt");file.createNewFile();System.out.println(file.getAbsolutePath());//返回一个路径File file1=new File("D:\\aa\\bb\\cc");System.out.println("file的路径"+file.getPath());System.out.println("file1的路径"+file1.getPath());System.out.println("file的名字"+file.getName());System.out.println("file1的名字"+file1.getName());System.out.println("file的上层目录:"+file.getParent());System.out.println("file1的上层目录:"+file1.getParent());System.out.println("file的文件长度:"+file.length());}
}
-
判断
判断文件是否存在 boolean isFile() 判断目录是否存在 boolean isDirectory() 判断是否存在 boolean exists()
import java.io.File;public class FileDemo04 {public static void main(String[] args) {File file=new File("vip09.txt");File file1=new File("D:\\aa\\bb\\cc");//判断文件是否存在 boolean isFile()System.out.println("file文件是否存在:"+file.isFile());//file是一个文件返回trueSystem.out.println("file1文件是否存在:"+file1.isFile());//file1是一个目录,所以返回一个false//判断目录是否存在 boolean isDirectory()System.out.println("file目录是否存在:"+file.isDirectory());//file是一个文件,返回falseSystem.out.println("file1目录是否存在:"+file1.isDirectory());//file1是一个目录,返回true//判断是否存在 Boolean exists()System.out.println("判断file是否存在:"+file.exists());//file存在,返回trueSystem.out.println("判断file1是否存在:"+file1.exists());//file存在,返回true}
}
-
获取子目录
String[] List();获取指定文件目录下所有文件或目录的名称 File[] ListFiles();获取指定目录下所有的文件或目录对象
import java.io.File;public class FileDemo05 {public static void main(String[] args) {File file=new File("D:\\KuGou");//String[] list 获取指定目录下所有文件或目录的名称
// String[] names=file.list();
// System.out.println("list()获取D:\\KuGou目录下所有文件的名字");
// for (String a:names){
// System.out.println(a);
// }File[] files=file.listFiles();System.out.println("listFiles()获取D:\\KuGou目录下所有文件的名字");for (File a:files) {System.out.println(a);}}
}
小测试:删除指定文件
该文件是为了测试而新建了: D:\test\1
请不要把路径设为盘符,删除是直接删除的,不经过回收站,一旦删除,本人无法解决!!!
不要直接使用代码删除文件,因为删除文件会直接删除,不会经过回收站!!!
import java.io.File;/*如何删除指定目录 D:\test\11.判断File对象对应的路径是否存在,不存在不删2.如果存在,判断file对象是目录还是文件3.如果是文件则直接删除4.如果是目录,获取目录下所有的文件或目录5.遍历上述所有文件或目录6.判断遍历File对象是否存在 重复第一步7.如果存在,则判断遍历File对象是文件还是目录,重复第二步递归:程序自己调用自己的一种编程技巧*/
public class Test {public static void main(String[] args) {File file=new File("D:\\test\\1");deleteFile(file);}public static void deleteFile(File file){//1.判断File对象对应的路径是否存在,不存在不删//file.exists()返回false表示不存在,不存在则方法结束,不删if (!file.exists()) {return;}//2.如果存在,判断File对象是目录还是文件if (file.isFile()) {//文件直接删除file.delete();}else if (file.isDirectory()){//4.如果是目录,获取目录下所有的文件或目录File[] files=file.listFiles();//5.遍历上述所有文件或目录for (File f:files) {deleteFile(f);//迭代}}/*当把目录下所有文件删除后,该目录也删除*/file.delete();///6.判断遍历File对象是否存在}
}
本人小白一枚,刚学习java,学习笔记可能有所错误,麻烦看见了请斧正,谢谢