- 博客(99)
- 收藏
- 关注
原创 java基础-IO流(hutool)
/另外一个方法是readUtf8Lines():按照UTF-8的方式把数据读取到文件中,和readlines中指定字符编码一样的效果。//3、writelines:把集合中的数据写到文件中,覆盖模式,可以写一个true续写。// //2、touch:根据参数创建文件,如果父级路径不存在,会把父级路径一起创建出来。//4、appendlines:把集合中的数据写到文件中,可以追加。//5、readlines:指定字符编码,把文件中的数据读到集合中。//file:根据参数创建一个file对象。
2026-01-07 10:10:02
246
原创 java基础-IO流(Commons-io)
在日常开发过程中,大部分的时候,我们都不会自己写IO流,一来是太复杂,容易和核心的业务代码混淆,二来自己写的IO流往往效率低,存在问题,给后续项目二次开发带来很多不必要的麻烦。//copyDirectoryToDirectory和copyDirectory的区别在于,copyDirectoryToDirectory会把源文件的文件夹复制到目的地。//E:\test\\test.txt复制生成E:\doc\doc.txt下面。//E:\test\test1复制到E:\doc下,生成一个test2文件夹。
2026-01-06 18:54:42
545
原创 java基础-IO流(压缩流和解压缩流)
/压缩包的原理,其实是把test文件放在了一个test.zip当中,这个test.zip压缩包本身并不是这个文件。//获取数据源里面的数据,变成zipentry对象,并放到压缩包中,递归。//2、创建File对象,表示压缩包的位置(你压缩完文件后,放的位置)//获取src里面的每个对象,变成Zipentry对象,放入到压缩包当中。//读取文件,写到压缩包里面。
2026-01-06 16:35:00
718
原创 java基础-IO流(序列化流和反序列流)
如果javabean中有一些属性,你不想序列化,比如student类中,有name,age,address,你不想序列化address,这个时候可以添加关键字。细节一:如果使用反序列化流在解析数据的时候,JAVAbean类是不能修改的,一旦修改就会导致两边的标识不一样。设置IDEA之后,如果不记得写,IDEA会有一个深色背景在类名的背后,你可以自己写一个。需求:将多个自定义对象序列化到文件中,但是对象的个数不确定,该如何操作的?序列化流/对象操作输出流:可以把JAVA中的对象写到本地文件中。
2026-01-04 17:33:16
223
原创 java基础-IO流(转换流)
3、将本地GBK文件转化为UTF-8,两种方式,JDK11之后会不需要单独new一个字符基本流,也不用在做字符转换了。//同样的在JDK11之后,字符输出流也可以指定字符编码了。//利用字节流读取文件,每次读取一整行,并且不能乱码。//将本地GBK转化为UTF-8字符编码。// osw.write("你好");//利用转换流按照指定字符编码读取。//利用转换流按照指定字符编码写出。//1、创建对象并指定字符编码。//方式二:JDK11之后的。// //写出数据。
2025-12-31 18:16:26
783
原创 java基础-IO流(缓冲流)
System.out.println("欢迎使用本软件,第"+count+"次使用免费");System.out.println("本软件只能免费使用3次,欢迎注册会员后继续使用");//4、字节缓冲流一次读取一个字节数组,拷贝文件。//1、利用字节流一次读写一个字节,拷贝文件。//3、字节缓冲流一次读取一个字节,拷贝文件。//创建字节缓冲输入流对象。//一次读取一个字节数组。//2、利用字节数组读写文件,拷贝文件。
2025-12-31 15:26:46
518
原创 java基础-IO流练习
可以继续用上面的加密算法,把起始文件清空,然后把起始文件和目的文件路径换一下,就可以把加密后的数据解密写入到起始文件中。//遍历begSource里面的子文件/文件夹。//修改文件数据:将2-1-9-4-7-8排序重新写入。//E:\file及其子文件夹,拷贝到E:\test。//如果起始文件是一个文件夹,在目标地址上要新建目录。//这个就是要写入到原本的test.txt文件中。//起始路径是一个文件,直接写到新的路径下。//拷贝一个文件夹,考虑子文件夹。//2、创建对象关联加密文件。
2025-12-30 11:56:03
715
原创 java基础-IO流(字符流)
/写出一个字符数组。//截取字符数组写入。//fw.write("哈喽");//也可以一次读取多个,按照数组来读取。//FileWriter:字符输出流。//关联本地文件路径,默认是不续写的。//用file路径的对象来处理。//1、用地址来创建。// //读取文件。// //关闭资源。// //创建对象。// //读取文件。
2025-12-29 10:40:36
732
原创 java基础-IO流(字符集)
/IDEA中默认是UTF-8。//利用String的构造方法来解码,指定解码的方式。//利用String的构造方法来解码。String str="汉字";//JAVA的编码方式。
2025-12-26 10:28:00
194
原创 java基础-IO流-1(重要)
/第三种:从字节数组b的2索引处,写入2个长度。//细节:IO流中,每一种流使用完都需要释放资源,释放资源后可以解除资源的占用,便于其他的应用来获取资源。//2、如果文件不存在,会创建一个新的空文件,但是要保证父级文件是存在的,如果父级路径不存在,会报错。//第二种:这里是写入字节数组的全部。//细节1:write中参数是整数,但是写入到文件内的是整数对应的ASCII对应的数据。/*操作步骤:1、创建对象,2、写出数据,3、释放资源*///细节:1、参数是字符串表示的路径或者File对象。
2025-12-25 15:57:56
437
原创 java基础-File
/createNewFile:创建一个新的空的文件(注意是文件不是文件夹,如果文件已经存在,会返回false)这里的路径包含文件夹和文件夹的路径。//比如当前已经存在一个E:\file\file2这个路径,再创建E:\file\file2文件夹是就会失败。//细节2:如果删除的是空文件夹,则直接删除同样不走回收站,如果删除的是非空文件夹,那么会删除失败。//length()表示文件的大小:注意只能表示文件的大小,没有办法表示文件夹的大小。//getAbsolutePath()返回文件/文件夹的绝对路径。
2025-12-24 09:42:49
556
原创 java基础-异常
问二:如果try中遇到多个问题,会第一个异常发生的时候,就去catch中查找是否有对应的捕获代码,如果有就紧接着执行catch和之后的代码。如果try中遇到了异常,直接就会去执行catch中的内容,不会再继续执行try异常后续的代码,如果catch中有捕获到,那就正常执行catch里面的内容,如果没有捕获到,那就JVM帮你默认捕获。问一:如果try中没有遇到问题,就会把try中的全部代码都执行完毕,不会执行catch中的代码,所以只有当出现了异常,才会执行catch中的代码。
2025-12-22 17:05:49
896
原创 java基础-方法引用
/需要特别注意:因为在static中没有this,所以在静态的main方法中是没有办法直接用this调用的 //你可以有两种方法:1、还是创建本类的对象,2、单独写一个非静态的方法,就可以用this::getstr了。Collections.addAll(list,"张无忌,15","周芷若,16","灭绝师太,30","张三丰,100");Collections.addAll(list,"张三,23","李四,24","王五,25");//集合中存储一些字符串的数据,比如"张三,23",
2025-12-21 18:06:33
945
原创 java基础-stream流练习
Collections.addAll(actorWoman,"赵丽颖,21","杨幂,22","迪丽热巴,23","杨澜,24","杨紫,25","赵露思,26");Collections.addAll(actorMan,"刘昊然,22","张成,22","侯昊,23","王安宇,24","林一,25","王鹤棣,26");.filter(s -> s.getName().startsWith("杨"))//定义一个集合,存储整数1,2,3,4,5,6,7,8,9,10。
2025-12-19 17:00:48
762
原创 Java基础-Stream流
Collections.addAll(st1,"张三丰-男-16","张四丰-男-17","赵六-女-18","张无忌-男-17","张翠山-男-19","张大炮-女-20");Map<String, Integer> collect = st1.stream().filter(s -> "男".equals(s.split("-")[1]))Collections.addAll(st,"张三丰","张三丰","赵六","张无忌","张翠山","张大炮","张三","李四","王五");
2025-12-19 11:55:41
845
原创 java基础-集合练习
Collections.addAll(name,"张浩然","李宇轩","王子轩","刘博文","张甜甜","李心心","王笑笑","陈睿哲","赵晨曦","周天宇");Collections.addAll(name,"张浩然","李宇轩","王子轩","刘博文","张甜甜","李心心","王笑笑","陈睿哲","赵晨曦","周天宇");Collections.addAll(boyname,"张浩然","李宇轩","王子轩","刘博文","陈睿哲","赵晨曦","周天宇");//用来存放抽取到的学生信息。
2025-12-15 11:18:08
554
原创 java基础-Collections工具类
/5、binarySearch:以二分查找法寻找元素,注意二分查找是要先对原集合排序。//7、fill:以指定的元素填充集合,集合中全部的元素都会变成指定元素。//--------------max也可以指定排序方式。//2、shuffle:打乱list集合元素的顺序。//6、copy第一个是源集合,第一个是目标数组。//1、addAll:对单列集合批量添加元素。//9、swap交换集合中指定位置的两个元素。//注意是单列集合才可以使用addAll。//8、max、min找到最大值。
2025-12-14 17:04:16
361
原创 TreeMap
TreeMap<Student,String> tm = new TreeMap<>(new Comparator<Student>() {//放一个比较器对象,根据自定义对象中年纪排序。// t.put(1,"手机");// t.put(3,"电脑");// t.put(2,"相机");tm.put(s1,"江苏");t.put(1,"手机");t.put(3,"电脑");t.put(2,"相机");//创建TreeMap集合。// //添加元素。
2025-12-13 17:11:28
684
原创 HashMap
Student student1 = new Student("张三",20);Student student2 = new Student("李四",21);Student student3 = new Student("王五",22);Student student4 = new Student("李四",21);//向HashMap中添加对象元素和籍贯。//建一个HashMap对象。//创建HashMap集合。//生成对象的单列数组。//创建三个学生对象。//计算集合中最大值。
2025-12-13 00:03:36
709
原创 java基础-ArrayList和LinkedList集合
ArrayList<String> list = new ArrayList<String>();list.add("a");list.add("b");list.add("c");list.add("d");ArrayList<String> list2=new ArrayList<>();list2.add("e");list2.addAll(
2025-11-29 17:21:20
211
原创 java基础-集合进阶
/如果往set集合中添加数据,如果当前添加的数据不存在,方法返回true,如果添加的数据存在了,方法返回false(set系统不允许重复)//remove(int index):删除指定索引删除元素,返回被删除的元素,删除后,原索引之后的元素依次想前移动。//返回值也是返回一个布尔类型的值,如果查询的值包含在集合里面,就返回true,如果不包含就返回false。//答案是:索引1,因为在调用方法的时候,如果方法出现了重载,优先调用,实参和形参类型一致的那个方法。
2025-11-29 14:31:55
732
原创 java基础-小练习
/可以爬一层,也可以依次爬两层,还可以一次爬三层。//递归:楼梯第n阶的爬法等于n-1的爬法加上n-2的爬法。//递归:楼梯第n阶的爬法等于n-1的爬法加上n-2的爬法。//先用年龄,再身高,再到姓名。// 返回一个包含对象属性信息的字符串。//如果刚好是3个月,就生了一对。//定义一个数组用来存储对象。如果一次可以爬一层,可以爬两层,还可以爬三层。//利用匿名内部类来比较。
2025-11-28 16:17:47
524
原创 java基础-Arrays
/fill(array, start, end, value),填充end - start个元素。//细节:只能给引用数据类型的数组进行排序(如果是基本数据类型的,就需要变化为对应的包装类)//第二个参数是一个接口,所以就需要传这个接口的实现类对象,采取匿名内部类的方式。//copyOf:拷贝数组,这里的10说明从原数组0索引开始拷贝到索引9。//fill()数组填充元素,fill填充元素的个数是数组的长度减一。//sort:按照指定的规则排序。//参数1:要排序的数组。//参数2:排序的规则。
2025-11-28 09:12:09
227
原创 java基础-排序算法
/第二次for循环是把第一层for循环中拿到的数据依次和后面的数据比较,如果小就前移,第二层循环的时候。//核心:其实是把无序里面的数据和前面有序里面的数据倒着依次比较,如果碰到大于无序数据的,就交换位置。//第一层for循环是依次拿出数组的每个元素(最后一个不用拿,因为前面的排完了,最后一个肯定是最大了)//1、找到无序的数据从那个索引开始的,从数组0索引开始找,找到一个数据比后面一个要大,返回索引值。//第二层for在第一层的基础上,每次冒出一个最大值,下一个就减少一个冒泡判断的数字。
2025-11-27 22:32:28
653
原创 java基础-查找算法基础
System.out.println(number+"被找到,对应的索引是"+index);27,22,30,40,36,13,19,16,20,7,10,43,50,48,这里的7是在整个数据中间的。//需求:{7,23,79,81,103,127,131,147}中二分查找131。//在2,4,6,8,12,14,16,18,20,22,24,26中查找20。//数据如下:{131,138,89,782,9,218,85}//5、调用方法,传递索引表,数组,要查找的元素。
2025-11-27 11:31:12
734
原创 java基础-时间类和包装类练习
System.out.println("字符串的整数形式为:"+result);System.out.println("输入一个1~100之间的整数");System.out.println(sum+"所输数字和大于200,结束");System.out.println("请输入一个整数字符串");System.out.println("输入一个年份:xxx");System.out.println("是闰年");System.out.println("是闰年");
2025-11-26 16:58:02
639
原创 java基础-包装类
包装类的本质就是创建了一个对象,对象中存储了对应的数据值(用一个对象把数据包起来)其他的几种都有对应的parseXXX方法,变化数据类型。包装类:基本数据类型对应的引用类型。8种基本类型和其对应的包装类。integer中的成员方法。
2025-11-26 10:06:15
187
原创 java基础-JDK7前时间相关类
/所以:1:星期天,2:星期1,3:星期2,4:星期3,5:星期4,6:星期5,7:星期6。//0:纪元,1:年,2:月份,3:一年的第几周,4:一个月的第几周,5:一个月的第几天。String beginDate="2023年11月11日 0:0:0";String endDate="2023年11月11日 0:10:0";String xiaojia="2023年11月11日 0:01:0";String xiaopi="2023年11月11日 0:11:0";
2025-11-25 15:10:36
738
原创 java基础-爬虫
"下一个长期支持版本是Java17,相信在未来不久Java17也会慢慢退出历史的舞台;//需求2:爬取版本号为8,11,17的Java版本,需要版本号,正确的格式为Java11,Java17。// //如果有返回true,在底层记录子串的起始索引和结束索引+1。//需求1:爬取版本号为8,11,17的Java版本,但是只要Java,不要版本号。// //方法的底层会根据find方法记录的索引进行字符串的截取。// //m要在str中找符合p规则的小串。
2025-11-24 14:39:18
1188
原创 java基础-常用的API
/克隆 //方法在底层会帮我们创建一个对象,并把原对象中的数据拷贝过去 //细节: //1、重新Object中的clone方法 //2、让JavaBean类实现Cloneable接口 //3、创建原对象并调用clone方法。System.out.println("1你".matches("\\D\\D"));System.out.println("我你".matches("\\D\\D"));System.out.println("------------数量词------------------");
2025-11-21 17:07:12
727
原创 java基础-练习
System.out.println("长方形圆的周长为:"+g.getPerimeter());System.out.println("圆的周长为:"+r.getPerimeter());System.out.println("长方形的面积为:"+g.getArea());System.out.println("showB的方法被调用");System.out.println("圆的面积为:"+r.getArea());System.out.println("玩游戏");
2025-11-15 23:32:41
437
原创 java基础-内部类
下面这两个是相同的意思,一个是局部变量,一个局部内部类,都不可以被外界直接使用,也不可以用public,private等修饰局部变量,如果需要访问外部的成员,只有在方法内创建一个Inner的对象。如果想要在静态内部类或者是静态方法中访问外部类的非静态成员变量的时候,需要先创建外部类的对象。静态内部类只能访问外部类中的静态变量和静态方法,如果想要访问非静态的需要创建外部内对象。1、局部内部类就是将内部类定义在方法里面,类似于方法里面的局部变量。1、内部类可以直接访问外部类的成员,包括私有的。
2025-11-15 17:19:38
273
原创 java基础-接口
1、默认方法不是抽象方法,所以不会被强制重写,但是如果被重写,实现类重写的时候去掉default关键字。2、接口和类之间的关系:实现关系,可以是单实现,也可以是多实现,还可以在继承一个类的同事实现多个接口。3、如果实现了多个接口,多个接口中存在相同名字的默认方法,子类就必须对该方法进行重写。1、类和类之间是继承关系,并且只能是单继承,不能是多继承的关系,但是可以是多层继承。System.out.println("学英语");接口:是一种规则,接口不表示事物,它更侧重于行为,是对行为的抽象。
2025-11-14 17:49:55
591
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅