一、包装类

包装类是为了解决基本类型不能直接参与面向对象开发的问题,实际就是将基本类型以“对象”的形式表示

Integer

1.1基本类型转换为对应的包装类(引用类型)
        int i=9;Integer i1 = new Integer(i);Integer i2 = new Integer(i);System.out.println(i1);//iSystem.out.println(i2);//iSystem.out.println(i1==i2);//falseSystem.out.println(i1.equals(i2));//true
1.2 valueOf方法

所有的包装类类型都提供了静态方法valueOf,可以将对应的基本类型转换为包装类,并且这种方式也是Java的推荐方法;
注:限制同一对象重用不超过127次,超出则等同new的方式

        Integer i3 = Integer.valueOf(i);Integer i4 = Integer.valueOf(i);System.out.println(i3==i4);//tSystem.out.println(i3.equals(i4));//tDouble d1 = Double.valueOf(123.456);Double d2 = Double.valueOf(123.456);//Double.valueof return new double not as IntegerSystem.out.println(d1==d2);//fSystem.out.println(d1.equals(d2));//t
1.3 包装类转换为基本类型(XXX Value方法)
        int n = i1.intValue();System.out.println(n);double dou = d1.doubleValue();System.out.println(dou);
1.4 两个常量:MAX_VALUE和MIN_VALUE

包装类提供两个常量:MAX_VALUE和MIN_VALUE可以获取取值范围

//查看最大值和最小值int min = Integer.MIN_VALUE;int max = Integer.MAX_VALUE;long lmin = Long.MIN_VALUE;long lmax = Long.MAX_VALUE;double dmin = Double.MIN_VALUE;double dmax = Double.MAX_VALUE;System.out.println(max);System.out.println(min);System.out.println(lmax);System.out.println(lmin);System.out.println(dmin);System.out.println(dmax);
1.5 parseXXX(String str)方法△△△

重点知识点:
包装类提供了一个静态方法:parseXXX(String str)
可以将字符串解析为对应的基本类型数据,前提是该字符正确描述了基本类型可以保存的值;

        String str = "123";//String str = "123.123";int d = Integer.parseInt(str);System.out.println(d);//123    /!123,报错,未正确描述该基本类型double doub = Double.parseDouble(str);System.out.println(doub);//123.0   / 123.123
1.6 自动拆装箱特性

JDK1.5发布后,提供了一个新的特性:自动拆装箱

  • 该特性是编译期认可的,作用是当编译期编译源代码时,发现有基本类型 和引用类型相互赋值时会自动补充转换代码,这样以来我们在源代码中就可以在基本类型和对应的引用类型之间直接赋值了
        int d=90;/** 触发了编译期的自动装箱特性:基本类型-->包装类* 编译器将代码改为:* Integer i = Integer.valueOf(d);*/Integer i = d;System.out.println(i);//90/** 触发了自动拆箱特性:包装类-->基本类型* 编译器将代码改为:* int n = i.integerValue(i);*/int n = i;System.out.println(n);//90

二、file

java.io.File 其每一个实例用于表示一个文件或目录
File可以:

  • 访问其表示的文件或目录的属性信息(名字、长度、读写权限等)

  • 操作文件或目录

  • 访问目录的子项

  • 不能访问文件的数据

       File file = new File("./demo.txt");String name = file.getName();System.out.println("文件名:"+name);long len = file.length();System.out.println("大小:"+len+"字节");

2.1 使用File创建一个文件

/** 当前目录下新建一个文件:text.txt*/File file = new File("./tese.txt");/** boolean exists()* 该方法是用来判断当前File表示的路径对应的文件或目录是否* 已经存在,存在则返回true*/if(file.exists()){System.out.println("文件已存在");}else {//在File表示的路径上将该文件真实创建出来file.createNewFile();System.out.println("文件已创建");}

2.2 创建一个目录

     /** 在当前目录下新建目录:demo*/File file = new File("./a/c/demo");if(file.exists()){System.out.println("目录已存在");}else{/** mkdir方法创建目录的前提是该目录所在的目录必须存在,否则无法创建* mkdirs方法创建时会将所有不存在的父目录自动创建出来*///file.mkdir();//创建该目录file.mkdirs();//无太多限制,如果没有路径则会自动创建路径System.out.println("目录已创建");}

2.3删除一个文件

/** 将当前项目下的test.txt文件删除*/File file = new File("./tese.txt");if(file.exists()){file.delete();System.out.println("文件已删除");}else{System.out.println("文件不存在");}

2.4删除一个目录

/** 删除当前目录下的demo目录*/File file = new File ("./a/c");if(file.exists()){/** delete方法再删除目录时有一个前提条件,就是该目录* 必须是一个空目录,否则无法删除*/file.delete();System.out.println("目录已删除");}else{System.out.println("目录不存在");}

2.5 访问当前目录下的子项

访问当前目录下的所有子项:

/** 访问当前目录下的所有子项*/File file = new File("d:/");/** boolean isFile()* 判断当前File表示的是否为一个文件* * boolean isDirectiory()* 判断当前File表示的是否为一个目录*/if(file.isDirectory()){//首先判断是否为一个目录/** File[] listFiles()* 获取所有子项,数组长度由目录中的子项决定,每个* 元素是一个子项*/File[] subs = file.listFiles();System.out.println(subs.length);for(int i=0;i<subs.length;i++){File sub = subs[i];System.out.println(sub.getName());}}

获取当前目录下所有名字以"."开始的子项

/** 获取当前目录下所有名字以"."开始的子项*/File file = new File(".");//访问当前目录下的所有子项if(file.isDirectory()){//     MyFilter filter = new MyFilter();//匿名内部类写法FileFilter filter = new FileFilter(){public boolean accept(File file) {return file.getName().startsWith(".");}};/** 重载的listFiles方法在获取该目录所有子项目时,* 会先将每一个子项(File对象)都调用一次给定的* 过滤器的accept方法,并最终将返回为true的所有* 子项返回*/File[ ]subs = file.listFiles(filter);System.out.println(subs.length);for(int i=0;i<subs.length;i++){File sub = subs[i];System.out.println("name:"+sub.getName());}}

2.6 lambda 更快的定义匿名内部类

lambda表达是JDK8后推出的一个新特性

  • lambda可以以更简洁的语法定义匿名内部类
  • 不是所有使用匿名内部类的情况都可以用lambda代替,只有实现接口中
  • 仅有一个抽象方法的时候才可以使用lambda
  • 语法:
  • (参数列表)->{
  •    方法体代码
    
  •    }
    
//使用匿名内部类形式创建FileFilterFileFilter filter = new FileFilter(){public boolean accept(File pathname) {return pathname.getName().endsWith(".txt");}};/** lambda表达式是Java编译器认可的,最终会被编译器改为* 内部类创建。并且编译器会结合程序上下文分析出实际上实例* 化的是哪个类,以及重写的是哪个方法(因为接口要求只有* 一个抽象方法,因此肯定是该方法)。并且方法的参数列表中* 无需再定义参数的类型,只需要指定形参名即可*/FileFilter filter2 = (f)->{return f.getName().endsWith(".txt");};/** 当lambda中只有一句代码时,我们可以忽略“{}”,如果* 这句代码含有return关键字,那么return关键字必须忽略*/FileFilter filter3 = (file)->file.getName().endsWith(".txt");File dir = new File(".");//File[]subs = dir.listFiles(filter3);File[]subs = dir.listFiles((f)->f.getName().endsWith(".txt"));System.out.println(subs.length);

2.7 递归方法

  • 递归时整个流程重复执行
  • 递归在开发中尽量避免,开销大,运行慢
  • 使用递归注意事项:
  • 1.方法内部调用当前方法称为递归
  • 2.递归调用必须靠一个分支结构控制,不能必须执行,否则死循环
  • 3.递归的层尽量少(内存开支大)
public static void main(String[] args) {File dir = new File("./a");delete(dir);}public static void delete(File file){/** 删除时首先判断file是否为目录,若为目录则先清除子项然后在删除该目录* 若为file表示的是一个文件,则直接删除*/if(file.isDirectory()){File[]subs = file.listFiles();for(int i=0;i<subs.length;i++){File sub = subs[i];//一个方法内部调用自己这个方法的现象叫做递归调用delete(sub);}}file.delete();}
}

练习

/*5 int ii=1;Integer ii1=Integer.valueOf(ii);int nn = ii1.intValue();String sre = "213";int num =Integer.parseInt(sre);double num1 = Double.parseDouble(sre);*//*4 int ii = 1;Integer ii1 = Integer.valueOf(ii);int nn = ii1.intValue();String stra = "456";int num = Integer.parseInt(stra);double num1 = Double.parseDouble(stra);*//*3 int ii = 1;Integer ii1 = Integer.valueOf(ii);int nn = ii1.intValue();String str = "123";int num = Integer.parseInt(str);doubele num1 = Double.parseDouble(str);*//*2 int ii = 1;Integer ii1 = Integer.valueOf(ii);int nn = ii1.intValue();String zxc = "231";int num = Integer.parseInt(zxc);double num1 = Double.parseDouble(zxc);*//*1int ii = 1;Integer ii1 = Integer.valueOf(ii);int nn = ii1.intValue();String as = "546";int num = Integer.parseInt(as);double num1 = Double.parseDouble(as);*/
/*5File file1  = new File(".");String name1 = file1.getName();long leng = file.length();System.out.println("文件名:"+name+";大小:"+leng+"字节");*//*4File file1 = new File(".");String name1 = file1.getName();long leng = file.length();System.out.println("文件名:"+name+";大小:"+leng+"字节");*//*3File file1 = new File(".");String name1 = file1.getName();long leng = file.length();System.out.println("文件名:"+name+";大小:"+leng+"字节");*//*2 File file1 = new File(".");String name1 = file.getName();long leng = file.length();System.out.println("文件名:"+name+";大小:"+leng+"字节");*//*1File file1 = new File(".");String name1 = file.getName();long leng = file.length();System.out.println("文件名:"+name+";大小:"+leng+"字节");*/
package file;import java.io.File;
import java.io.IOException;public class Exer {public static void main(String[] args) throws IOException {/** 生成一个项目a1下含有多级子目录和子项* 定义并输出每个子项的名字* 最后删除该项目*/File file = new File("./a1/c2/d3/demo");if(file.exists()){System.out.println("目录已存在");}else{file.mkdirs();System.out.println("目录已创建");}File text1 = new File("./a1/text1.txt");File text2 = new File("./a1/c2/text2.txt");File text3 = new File("./a1/c2/d3/text3.txt");File text4 = new File("./a1/c2/d3/demo/text4.txt");if(text1.exists()&&text2.exists()&&text3.exists()&&text4.exists()){System.out.println("文件已存在");}else{text1.createNewFile();text2.createNewFile();text3.createNewFile();text4.createNewFile();System.out.println("文件已创建");}File file1 = new File("./a1");show(file1);delete(file1);}public static void show (File f){if(f.isDirectory()){File[]subs = f.listFiles();for(int i=0;i<subs.length;i++){File sub = subs[i];show(sub);}} System.out.println("name:"+f.getName());System.out.println("byte:"+f.length());System.out.println("read?:"+f.canRead());System.out.println("write?:"+f.canWrite());System.out.println("hidden?:"+f.isHidden());}public static void delete(File fi){if(fi.isDirectory()){File[]subs = fi.listFiles();for(int i=0;i<subs.length;i++){File sub = subs[i];delete(sub);}}fi.delete();}}package file;import java.io.File;
import java.io.IOException;import javax.xml.soap.Text;public class Exer2 {public static void main(String[] args) throws IOException {/*5 File f =new File("./a1/c2/d3/demo");if(f.exists()){System.out.println("目录已存在");}else{f.mkdirs();System.out.println("目录已创建");}File text1 = new File("./a1/text1.txt");File text2 = new File("./a1/c2/text2.txt");File text3 = new File("./a1/c2/d3/text3.txt");File text4 = new File("./a1/c2/d3/demo/text4.txt");if(text1.exists()&&text2.exists()&&text3.exists()&&text4.exists()){System.out.println("文件已存在");}else{text1.createNewFile();text2.createNewFile();text3.createNewFile();text4.createNewFile();System.out.println("文件已创建");}File f1 = new File("./a1");show(f1);delete(f1);*//*4 File f = new File("./a1/c2/d3/demo");if(f.exists()){System.out.println("目录已存在");}else{f.mkdirs();System.out.println("目录已创建");}File text1 = new File("./a1/text1.txt");File text2 = new File("./a1/c2/text2.txt");File text3 = new File("./a1/c2/d3/text3.txt");File text4 = new File("./a1/c2/d3/demo/text4.txt");if(text1.exists()&&text2.exists()&&text3.exists()&&text4.exists()){System.out.println("文件已存在");}else{text1.createNewFile();text2.createNewFile();text3.createNewFile();text4.createNewFile();System.out.println("文件已创建");}File ff = new File("./a1");show(ff);delete(ff);*//*3File f = new File("./a1/c2/d3/demo");if(f.exists()){System.out.println("目录已存在");}else{System.out.println("目录已创建");f.mkdirs();}File text1 = new File("./a1/text1.txt");File text2 = new File("./a1/c2/text2.txt");File text3 = new File("./a1/c2/d3text3.txt");File text4 = new File("./a1/c2/d3/demo/text4.txt");if(text1.exists()&&text2.exists()&&text3.exists()&&text4.exists()){System.out.println("文件已存在");}else{text1.createNewFile();text2.createNewFile();text3.createNewFile();text4.createNewFile();System.out.println("文件已创建");}File ff = new File("./a1");show(ff);delete(ff);*//*2File f =new File("./a1/c2/d3/demo");if(f.exists()){System.out.println("目录已存在");}else{f.mkdirs();System.out.println("目录已创建");}File text1 = new File("./a1/text1");File text2 = new File("./a1/c2/text2");File text3 = new File("./a1/c2/d3/text3");File text4 = new File("./a1/c2/d3/demo/text4");if(text1.exists()&&text2.exists()&&text3.exists()&&text4.exists()){System.out.println("文件已存在");}else{text1.createNewFile();text2.createNewFile();text3.createNewFile();text4.createNewFile();System.out.println("文件已创建");}File ff = new File("./a1");show(ff);delete(ff);*//*1 File f =new File("./a1/c2/d3/demo");if(f.exists()){System.out.println("目录已存在");}else{f.mkdirs();System.out.println("目录已创建");}File text1 = new File("./a1/text1");File text2 = new File("./a1/c2/text2");File text3 = new File("./a1/c2/d3/text3");File text4 = new File("./a1/c2/d3/demo/text4");if(text1.exists()&&text2.exists()&&text3.exists()&&text4.exists()){System.out.println("文件已存在");}else{text1.createNewFile();text2.createNewFile();text3.createNewFile();text4.createNewFile();System.out.println("文件已创建");}File ff = new File("./a1");show(ff);delete(ff);*/}/*5 public static void show(File f){if(f.isDirectory()){File[]s =f.listFiles();for(int i=0;i<s.length;i++){File sa = s[i];show(sa);}}System.out.println("name:"+f.getName());System.out.println("byte:"+f.length());System.out.println("read?:"+f.canRead());System.out.println("write?:"+f.canWrite());System.out.println("hidden?:"+f.isHidden());}public static void delete(File f){if(f.isDirectory()){File[]as = f.listFiles();for(int i=0;i<as.length;i++){File ass = as[i];delete(ass);}}f.delete();}*//*4public static void show(File f){if(f.isDirectory()){File[]as=f.listFiles();for(int i=0;i<f.length();i++){File aa = as[i];show(aa);}}System.out.println("name:"+f.getName());System.out.println("byte:"+f.length());System.out.println("read?:"+f.canRead());System.out.println("write?:"+f.canWrite());System.out.println("hidden?:"+f.isHidden());}public static void delete(File f){if(f.isDirectory()){File[]as = f.listFiles();for(int i=0;i<as.length;i++){File a1 = as[i];delete(a1);}}f.delete();}*//*3public static void show(File f){if(f.isDirectory()){File[]as = f.listFiles();for(int i=0;i<f.length();i++){File e = as[i];show(e);}}System.out.println("name:"+f.getName());System.out.println("byte:"+f.length());System.out.println("read?:"+f.canRead());System.out.println("write?:"+f.canWrite());System.out.println("hidden?:"+f.isHidden());}public static void delete(File f){if(f.isDirectory()){File[]oo=f.listFiles();for(int i=0;i<oo.length;i++){File aa=oo[i];delete(aa);}}f.delete();}*//*2 public static void show(File f){if(f.isDirectory()){File[]zz=f.listFiles();for(int i=0;i<zz.length;i++){File aa = zz[i];show(aa);}}System.out.println("name:"+f.getName());System.out.println("byte:"+f.length());System.out.println("read?:"+f.canRead());System.out.println("write?:"+f.canWrite());System.out.println("hidden?:"+f.isHidden());}public static void delete(File a){if(a.isDirectory()){File[]aa = a.listFiles();for(int i=0;i<aa.length;i++){File aaa=aa[i];delete(aaa);}}a.delete();}*//*1public static void show (File f){if(f.isDirectory()){File[]subs = f.listFiles();for(int i=0;i<subs.length;i++){File sub = subs[i];show(sub);}} System.out.println("name:"+f.getName());System.out.println("byte:"+f.length());System.out.println("read?:"+f.canRead());System.out.println("write?:"+f.canWrite());System.out.println("hidden?:"+f.isHidden());}public static void delete(File fi){if(fi.isDirectory()){File[]subs = fi.listFiles();for(int i=0;i<subs.length;i++){File sub = subs[i];delete(sub);}}fi.delete();}*/}

JAVA SE学习day_03:包装类、文件操作——file相关推荐

  1. 第一阶段Java SE学习概述

    Java SE学习概述 Java SE 学习分为五个阶段 第一部分:基础程序设计: 第二部分:面现象对象编程: 第三部分:Java SE 高级应用: 第四部分:JavaSE 新特性: 第五部分:MyS ...

  2. Python零基础速成班-第8讲-Python文件操作File IO、高级文件处理模块shutil、CSV、JSON、多线程基础

    Python零基础速成班-第8讲-Python文件操作File I&O.高级文件处理模块shutil.CSV.JSON.多线程基础 学习目标 文件操作File I/O 高级文件处理模块shut ...

  3. Python学习笔记:文件(File)

    Python学习笔记:文件(File) 打开一个文件用于读写,在Python里十分简单,利用内置open函数,可以用绝对路径,也可以用相对路径. 默认模式是'r',只读模式. 文件句柄f是一个可迭代对 ...

  4. JAVA SE学习day_05: IO与流操作

    一.IO与流 以程序为主体,input(输入)是读.获取.使用输入流的过程,output(输出)是写.发送的过程. JAVA IO 标准的输入与输出 JAVA IO将读和写按照方向划分为: 输入:用于 ...

  5. java返回值变为文件_Java 文件操作-File

    1.File文件操作 java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等),不能对文件的 ...

  6. Java 文件操作-File

    1.File文件操作 java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等),不能对文件的 ...

  7. JAVA SE学习笔记(七):终章:Java程序设计基础笔记(全10万字)

    Java程序设计入门 ​                                              copyright © 2020 by 宇智波Akali 目录 文章目录 第1章 J ...

  8. Java SE 学习记录——进阶版11

    @学习记录 开始学习Java 遵从同学的指导,从Java se开始学习 黑马的JavaSE零基础入门[网络编程] 第一章 网络编程入门 1.1 软件结构 22-02 软件结构 1.2 网络通信协议 2 ...

  9. java常用的分隔符_*文件操作类1(基本操作)分隔符的使用

    Java IO学习原则:抽象类中定义的抽象方法会根据实例化其子类的不同,也会完成不同的功能. 使用File类来进行文件的操作. 如果要进行所有的文件以及文件内容的开发操作,那么应该使用java.io包 ...

最新文章

  1. Matlab命令集--常用字符串函数
  2. 【数据库】数据库系统的结构(概念篇详解)
  3. OAuth2 实现单点登录 SSO
  4. Lambda表达式使用2
  5. 【美团语音交互部】 NLP/知识图谱/语音识别等算法职位开放招聘!
  6. 3月起这些新规将实施:从事网络招聘服务应取得许可证
  7. [转载]高性能托管应用程序设计入门
  8. js 读取excel 导入mysql_可以读取EXCEL文件的js代码
  9. hbase倒序查询_hbase过滤器汇总【查询汇总】
  10. Objective-C的对象模型
  11. Java多线程之内置锁与显示锁
  12. 服务器远程关机后开机开不了,远程开关机系统安全吗
  13. Win7 没有声音的解决方法
  14. MyBatis和Hibernate的区别
  15. dns智能解析对网站排名的影响
  16. 如何做一个基于JAVA失物招领网站系统毕业设计毕设作品(springboot框架)
  17. 一切问题都可以是最优化
  18. signature=4c7f5ea5ee6ba300a8851e5bd937b405,拦截到崩溃scrollViewContainer 错误
  19. 正念,探寻自我觉醒之路(深度想考)
  20. 【转】加快网站访问速度——Yslow极限优化

热门文章

  1. linux 修改图片的尺寸
  2. java URI 与URL问题
  3. mac 从终端打开应用程序
  4. 网站集成支付宝的方法和所需资料下载
  5. 安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法
  6. 解决Jenkins升级时浏览器一直提示Please wait while Jenkins is restarting问题
  7. C# “Thread类Suspend()与Resume()已过时” 解决方法(利用ManualResetEvent类)
  8. python 2: 解决python中的plot函数的图例legend不能显示中文问题
  9. java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to...异常
  10. 【异常】Caused by: java.lang.NoClassDefFoundError: org/aspectj/lang/annotation/Around