Map集合概述
interface Map<K,V> K:键的类型;V:值的类型
Map集合的特点 键值对映射关系 一个键对应一个值键不能重复,值可以重复 元素存取无序方法介绍 V put(K key,V value)添加元素 V remove(Object key)根据键删除键值对元素 void clear()移除所有的键值对元素 boolean containsKey(Object key)判断集合是否包含指定的键 boolean containsValue(Object value)判断集合是否包含指定的值 boolean isEmpty()判断集合是否为空 int size()集合的长度,也就是集合中键值对的个数 V get(Object key)根据键获取值 Set<K> keySet()获取所有键的集合 Collection<V> values()获取所有值的集合 Set<Map.Entry<K,V>> entrySet()获取所有键值对对象的集合Collections类的作用 是针对集合操作的工具类Collections类常用方法 public static void sort(List<T> list)将指定的列表按升序排序 public static void reverse(List<?> list)反转指定列表中元素的顺序 public static void shuffle(List<?> list)使用默认的随机源随机排列指定的列表 File类
它是文件和目录路径名的抽象表示
文件和目录是可以通过File封装成对象的
对于File 而言,其封装的并不是一个真正的文件,而是一个路径名。
它是可以存在的,也可以是不存在的。需要具体的操作把这个路径的内容转换为具体存在的。
File 类的构造方法
File (String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
File (String parent,String child)从父路径名字符串和子路径名字符串创建新的File实例
从父抽象路径名和子路径名字符串创建的 File实例
File判断功能
booleam isDirectory() 测试此抽象路径名表示的File是否为目录
booleam isFile()测试此抽象路径名表示的File是否为文件
boolean exists()
测试此抽象路径名表示的File是否存在
File获取功能
String getAbsolutePath()返回此抽象路径名的绝对路径名字符串
String getPath()将此抽象路径名转换为路径名字符串
String getName()返回由此抽象路径名表示的文件或目录的名称
public String[] list()
返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
public File[] listFiles()
返回此抽象路径名表示的目录中的文件和目录的File对象数组
boolean delete()
删除由此抽象路径名表示的文件或目录
绝对路径和相对路径的区别
绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。
相对路径:必须使用取自其他路径名的信息进行解释。
递归的介绍
以编程的角度来看,递归指的是方法定义中调用方法本身的现象
把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解
递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算
递归的注意事项
递归一定要有出口。否则内存溢出
递归虽然有出口,但是递归的次数也不宜过多。否则内存溢出
IO流介绍
IO:输入/输出(Input/Output)
流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输
IO流就是用来处理设备间数据传输问题的。常见的应用:文件复制;文件上传;文件下载
IO流分类
按数据流向(输入流:读数据)(输出流:写数据)
按数据类型{字节流(字节输入流)(字节输出流)}{字符流(字符输入流)(字符输出流)}
IO流的使用场景
如果操作的是纯文本文件,优先使用字符流
如果操作的是图片、视频、音频等二进制文件。优先使用字节流
如果不确定文件类型优先使用字节流。字节流是万能的流
字节流抽象基类
InputSteam:这个抽象类是表示字节输入流的所有类的超类
OutputSteam:这个抽象类是表示字节输出流的所有类的超类
子类名的特点:子类名称都是以其父类名字作为子类名的后缀
字节输入流
FileOutputSteam (String name):创建文件输出流以指定的名称写入文件
使用字节输出流写数据步骤
创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件)
调节字节输出流对象的写数据方法
释放资源(关闭此文件输出流并释放与此相关联的任何系统资源)
写数据的方法分类
void write(int b)将指定的字节写入此文件输出流 一次写一个字节数据
void write(byte[] b)将b.length字节从指定的字节数组写入此文件输出流,一次写一个字节数据组数据
void write(byte[] b,int off,int len)将len字节从指定的字节数组开始,从偏移量off开始写入此文件输出流一次写一个字节数组的部分数据
字节流写数据如何实现换行 windows:\r\n
linux:\n
mac:\r
字节流写数据如何实现追加写入
public FileOutputStream(String name,boolean append)
创建文件输出流以指定的名称写入文件。如果第二个参数为true ,则字节将写入文件的末尾而不是开头
字节输入流
FileInputStream(String name):通过打开与实际文件的连接来创建一个FileInputStream ,该文件由文件系统中的路径名name命名
字节输入流读取数据的步骤
创建字节输入流对象
调用字节输入流对象的读数据方法
释放资源
一次读一个字节数组的方法
public int read(byte[] b):从输入流读取最多b.length个字节的数据
返回的是读入缓冲区的总字节数,也就是实际的读取字节个数
|