一、File类(文件操作)
1、Java中关于文件的操作位于java.io.File类;
2、file代表:文件目录(文件夹)或目录;
3、File类的常用API使用
File类中有许多方法和属性,用于操作文件目录或者文件,包括:读取文件、生成文件、删除文件、修改文件的属性等。
(1)常用构造器
File file = newFile(String path);
用于使用路径创建文件。
(2)文件的创建
步骤:首先创建file对象,在使用路径创建文件<br />1)绝对路径创建:windows系统的路径分隔符采用反斜杠(\),而其他系统采用正斜杠(/);<br />如:File file = newFile(D:/study/java/test1.txt);<br />**注意**:<br />**①此处的路径只是抽象的路径,并不一定真实存在;**<br />**②如果此路径没有该文件,则可以使用file.creatNewFile()创建此文件,但创建文件要求路径必须真实存在。**<br />**③此处所创建的文件的路径是绝对路径。**<br />**2)相对路径创建:使用绝对路径创建的文件的默认路径是本项目的根目录。**
(3)文件目录的创建
1)mkdir():创建一个文件目录,若中间目录缺失,则创建失败;<br /> 2)mkdirs():创建多个文件目录,若中间目录缺失,则创建缺失的目录;
(4)File类的常用方法
1)File file = newFile(String path):创建File对象
2)creatNewFile():创建新的file,如果路径不存在,则创建失败。
3)delete():若文件存在,则删除该文件或文件夹;
4)isFile():判断是否为文件
5)isDirectory():判断是否是目录
6)boolean exists():判断file是否存在
7)longlastModified():返回最后一次修改的时间
8)long length():返回文件大小
9)String getName():返回文件或文件夹名称
10)String path :返回文件路径
11)getParentFile():返回父目录的File对象
12)String[ ] list():返回子文件名字的数组
13)File[ ] listFiles():返回子文件名字的数组
(5)创建一个文件,其路径和文件都不存在
步骤:
1)创建File对象file:通过需要创建的目录路径;
2)获取文件的父目录路径对象
File parentFile =file.getParentFile();
3)创建目录
parentFile.mkdirs();
4)创建file文件
file.creatNewFile();
二、容器
用于存放对象数据的集合叫做容器。比如map和colleciton;
collection集合就是可以存放多个对象数据的容器,是一个接口,位于java.util.Collection中,有List和Set两个子接口。
1、List集合
List集合是一个有序的,可重复的,且长度不固定的集合。有三个实现类。
(1) 实现类:ArrayList类
a.底层通过数组存储数据;
b.读取和设置数据的效率高;(使用较多)
c.删除和插入数据的效率低。
d.线程不安全的;
(2)实现类:LinkdeList类
a.底层通过双向链表存储数据;
b.读取和设置数据的效率低;(使用较少)
c.删除和插入数据的效率高;
d.线程不安全的;
(3)实现类:Vector类
a.线程安全<br /> b.底层通过数组保存数据。
(4)List容器的创建
List<元素类型> 容器名 = new ArrayList()<元素类型>;
(5)List集合的常用 API使用
1)add(int index):添加元素到集合的尾部
2)set(int index,需设置的元素):修改(设置)元素
3)get(int index):获取对应下标的元素
4)remove(int index):删除对应下标的元素
5)add(int index,需插入的元素):插入元素
6)int size:获取容器的大小(元素的个数)
7)contains(需查找的元素):查看是否包含某元素
(6)容器的遍历
通过普通for循环(下标)、增强for循环遍历、迭代器遍历。
使用迭代器的作用:便于操作容器中的元素。
迭代器遍历的步骤:
1)获取容器的迭代器
Iterator<容器元素类型>迭代器名称it = 容器名.iterator();
2)判断迭代器是否存在下一个元素,并以此为条件,循环执行遍历
3)取出下一个元素
4)执行后续操作
Iterator<元素类型>it = names.iterator();
while(it.hasNext()){
String name = it.next();
}
2、Set集合
Set集合是无序的,不可重复的,长度不固定的容器。
因为无序,所以不能通过下标操作set集合中的元素。
Set集合有两个实现类。
(1)实现类:HashSet类
(2)实现类TreeSet类
底层通过TreeMap存储数据,并会对无序元素进行升序排列。(通常不适用自动排序,需要时使用Array.sort()即可)
(3)Set容器的创建
Set<元素类型> 容器名 = new HashSet()<元素类型>;
(4)Set集合的常用API使用
1)add(元素):添加元素(注意:此处没有下标)
2)remove(元素):删除元素(注意:没有下标,只能通过指定元素对象来删除)
3)clear():清除元素(全部清除)
4)size():容器大小(元素个数)
5)contains(需查找的元素):查看是否包含某元素
6)toArray():转成数组(按Set排过的序)
(5)Set集合的遍历
1)增强for循环:因为Set集合无序,因为没有下标,不能使用普通for循环。<br />2)迭代器遍历
3、泛型
1、泛型在jdk1.5引入,提供在编译时期的类型安全检查,本质是参数化类型。
2、泛型使用的三种方式:泛型类、泛型接口、泛型方法;
3、泛型声明:
4、常用字符:
T(type)、E(element)、K(key)、V(value)
5、泛型在使用时才确定类型,通过泛型的设置可约定数据类型,避免ClassCastException。
6、使用泛型的好处:在编译的时候检查类型安全,并能捕捉类型不匹配的错误,并且所有的强制转换都是隐式的和自动的,提高代码的重用率。