1,Map
---| Map<K, V> 双列集合,这是一个接口
------| HashMap 实现类------| TreeMap
K:Key 键 !!! 唯一值!!! 不允许重复!!!
V:Value 值 一个键(Key)对应一个值(Value) 可以重复的
在Map<K, V> 双列集合中,保存的只能是一个键(Key)值(Value)对!
Map中要学习的方法:
增
put(K key, V value); 添加一个键(Key)值(Value)对
putAll(Map<? extends K, ? extends V> map);
添加一个符合数据类型的Map双列集合
删
clear(); 清空所有的键(Key)值(Value)对
remove(Object key); 根据Key删除对应的键(Key)值(Value)对
改
put(K key, V value); 当键(Key)存在时,这个操作是重新修改值(Value)
查
size(); 获取键值对个数
get(Object key); 通过键(Key)找出对应的值(Value)
containsKey(Object key); 查看这个Key是否在Map中存在
containsValue(Object value); 查看这个Value是否在Map存在
keySet(); 返回所有键(Key)Set集合
values(); 返回所有值(Value)Collection集合
Map<String, String> map = new HashMap<String, String>();
2,Map中的entrySet使用
/*这里把键值对,认为是一个对象,组成一个类,称之为Entry
class Entry<K, V> {
K key;
V value;
}
这里可以认为在Map集合中,保存的每一个键值对都是一个Entry对象,把这些Entry对象获取出来,
做成一个集合,进行遍历
entrySet();
Map.Entry
*/
Set<Entry<String, Integer>> entrySet = map.entrySet();
Iterator<Entry<String, Integer>> it2 = entrySet.iterator();
while (it2.hasNext()) {
System.out.println(it2.next());
}
3,IO
IO:
Input Output
read write
只考虑文件操作情况下:
读取操作是:input read 从硬盘(存储设备) 到 内存
写入操作是:output write 从内存 到 硬盘(存储设备)
------------------------------------------------------------------------------------------
如何创建一个File类对象:
File(String pathName);
根据文件路径创建File类对象,可以使【绝对路径】可以是【相对路径】
File file2 = new File("C:/aaa"); //用在Linux和Windows通用的分隔符
File(String parent, String child);
根据提供的父目录【文件夹】地址,和当前文件夹下的【子文件】或者【子文件夹】创建File类对象
File file4 = new File("C:\\aaa", "1.txt");
File(File parent, String child);
根据创建好的父目录的File类对象,和这个目录下的【子文件】或者【子文件夹】创建File类对象
File file5 = new File(file1, "1.txt");
--------------------------------------------------------------------------------------------------
可以利用File类对象,创建文件或者文件夹
boolean createNewFile();
File file1 = new File("C:/aaa/1.txt");
boolean ret = file1.createNewFile();
使用File类对象,创建File类对象里面保存的地址 指定 的 普通文件
返回值boolean: 创建成功返回true,创建失败返回false
返回false失败原因:
1. 该文件已经存在
2. 操作路径非法,例如:文件指定所在文件夹不存在
3. 操作的文件夹没有写入权限
4. 硬盘坏了
【要求】
创建文件,必须带有文件后缀名!!!
.java .class .doc .txt .xml .html .css .js .md .jsp
.m .h .c .cpp .php .net .ppt .xls .exe .zip .rar .mp4
--------------------------------------------------------------------------------------------
boolean mkdir(); make direcotry 创建文件夹
File file2 = new File("C:/aaa/bbb");
ret = file2.mkdir();
使用File类对象里面保存的文件夹地址,创建对应的文件夹
返回值:boolean 创建成功返回true 创建失败返回false
失败原因:
1. 已经存在该文件夹
2. 指定创建文件夹的父目录没有写入权限
3. 要创建文件夹的父目录不存在
-------------------------------------------------------------------------------------------------
boolean mkdirs();
File file4 = new File("C:/aaa/ccc/ddd/eee/fff/ggg/hhh/iii/jjj");
ret = file4.mkdirs();
使用File类对象里面保存的文件夹路径地址,创建指定文件夹,如果该路径中的【中间文件夹】不存在
把中间路径,同时创建
返回值:boolean 创建成功返回true 创建失败返回false
失败原因:
1. 已经存在该文件夹
2. 指定创建文件夹没有写入权限
C:/aaa/ccc/ddd/eee/fff/ggg/hhh/iii/jjj
----------------------------------------------------------------------------------------------------
boolean renameTo(File dest);
功能1:
重命名!!!文件 或者 文件夹
File dest1 = new File("C:/aaa/2.txt");
//把C:/aaa/1.txt 重命名!!!
ret = file1.renameTo(dest1);
功能2:
剪切,移动到另一个位置
//原地址要带有文件或者文件夹名,而且目标地址也有带有文件或者文件夹名
File txt3 = new File("C:/aaa/3.txt");//C:\Users\刘晓磊\Desktop
File dest2 = new File("C:\\Users\\刘晓磊\\Desktop\\3.txt");
ret = txt3.renameTo(dest2);
-------------------------------------------------------------------------------------------
delete()
删除文件或者文件夹,但是如果操作文件夹的话,只能删除空文件夹
成功返回true ,失败返回false
该删除操作不是把文件或者文件夹,放入到回收站里,而是直接从磁盘上抹去数据
该操作不可逆
System.out.println("删除成功了吗?" + file1.delete());
deleteOnExit()
当JVM虚拟机运行终止之后,删除指定的文件或者文件夹,而不是调用立即删除
-----------------------------------------------------------------------------------------------
exists(); 判断指定的文件或者文件夹是否存在
isFile(); 判断指定的File是文件吗?
isDirectory(); 判断指定的File是文件夹吗?
isHidden(); 判断指定的File是隐藏文件吗?
isAbsolute(); 判断创建File类对象使用的是绝对路径吗?
---------------------------------------------------------------------------------------------------
以下方法和文件是否【存在无关】!!!!!!
getName(); 获取路径中的文件名或者文件夹名
getPath(); 获取File类对象里面保存的路径
getAbsolutePath(); 获取File对象里面保存路径对应的绝对路径
getParent(); 获取当前文件或者文件夹的父目录,如果没有返回null
lashModified(); 文件最后的修改时间
UNIX时间戳
计算机元年到修改时间的秒数:
1970年01月01日 00:00:00
2017年12月08日 15:24:50
long last = new File("C:/aaa/1.txt").lastModified();
Date date = new Date(last);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(date));
length(); 文件的大小(字节数),如果文件不存在,或者是一个文件夹,返回0L
-----------------------------------------------------------------------------------------------------------------
static File[] listRoots();
获取当前计算机中所有的盘符,针对Windows操作系统
Linux/UNIX没有区分盘符的概念 只有一个根目录 /
File[] roots = File.listRoots();
for (File file : roots) {
System.out.println(file.getPath());
}
String[] list();
获取指定【文件夹】里面所有子文件和子文件,返回一个String类型的的数组
File file = new File("C:\\Program Files\\Java\\jdk1.8.0_131");
String[] allFilePath = file.list();
for (String string : allFilePath) {
System.out.println(string);
}
File[] listFiles();
获取指定【文件夹】里面所有子文件和子文件,返回一个File类型的的数组
File[] allFileObject = file.listFiles();
for (File file2 : allFileObject) {
System.out.println(file2);
}
endsWith(".java")找出指定文件夹下的所有.java文件