Java集合
为什么会出现集合类:
面向对象编程语言对事物的描述都是通过对象来体现的。
方便对多个对象进行操作,必须对多个对象进行存储,想对多个对象进行存储
就不能是一个基本的变量,应该是一个容器类型的变量
StringBuilder的结果只能是一个字符串类型,不一定满足我们的需求
数组的长度是固定的,适应不了变化的需求,集合类
集合类的特点:
长度可变
ArrayList<E>
大小可变数组的实现
<E>是一种特殊的数据类型:泛型
怎么用:在出现E的地方我们使用引用数据类型替换即可
举例:ArrayList<String>,ArrayList<Student>
构造方法
ArrayList();
添加元素: public boolean add(E e) 添加元素
public void add(int index,E element):在指定的索引处添加一个元素
获取元素
public E get(int index):返回指定索引处的元素
集合长度:
public int size():返回集合中的元素的个数
删除元素:
public boolean remove(Object o):删除指定的元素,返回删除是否成功
public E remove(int index):删除指定索引处元素,返回删除的元素
修改元素:
public E set(int index, E element):修改指定索引处的元素,返回被修改的元素
ArrayList集合的遍历:通过size()和get()配合实现
用法格式:
for(int x=0;x<array.size;x++){
String s=array.get(x);
System.out.printlnt(S);
}
IO流的概述和分类
IO流:
可以把数据存储到文件,也可以从文件中读取数据
IO流:
输入流:读数据
写数据:输出流
写数据--输出流--FilerWriter。
FileWrither:
FileWriter(String fileName):传递一个文件名称
输出流写数据的步骤:
1.创建输出流对象
2.调用输出流对象的写数据方法
3.释放资源
创建输出流对象做了哪些事情:
1.调用系统资源创建一个文件
2.创建输出流对象
3.把输出流对象指向文件
数据没有直接写到文件,写到内存缓冲区
void flush;通过刷新
void close:释放资源
相对路径:相对当前项目而言,在项目的根目录下(a.txt)
绝对路径:以盘符开始的路径:(d:\\a.txt)
close()和flush()方法的区别
flush()刷新缓冲区(流对象还可以继续使用)
close()先刷新缓冲区,然后通知系统释放资源,流对象不可以再被使用了
FileWriter写数据的方法:
方法解释:
void write(String str):写一个字符串数据
void write(String str, int index,int len);写一个字符串的一部分数据
void write(int ch):写一个字符数据,这里写int类型的好处是既可以写char类型的数据 也可以写char对应的int类型的值‘a’,97
void write(char [] chs):写一个字符数组数据
void write(char [] chs, int index,int len):写一个字符数组的一部分数据
FileWriter写数据的常见问题
如何实现数据的换行,但是windows系统自带的记事本打开并没有换行,
windows: \r\n
linux:\n
mac:\r
如何追加写入:
FileWriter(String fileName,boolean append)
eg:FileWriter fw=new FileWriter(“c.txt”,true);表示追加写入,默认false
FileReader 读数据并显示到控制台
读数据--输入流--FileReader:
FileReader(String fileName):传递文件名称
输入流读文件:
1.创建输入流对象
2调用输入流对象的读数据方法
.3.释放资源
java :FileNotFoundException:fr.txt(系统找不到指定的文件)
调用输入流对象的读数据方法
int read():一次读取一个字符
读取数据的返回值是-1时候,说明没有数据了,循环结束
int read(char [] cbuf):一次读取一个字符数组的数据。
缓冲流:
BufferedWriter:将文写入字符输出流,缓冲各个字符:从而提供单个字符,数组和字符串的高效写入
BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符数组和行的高效读取
eg:BufferedWriter bw=new BufferdWriter(new FilerWriter(“bw.txt”));
BufferedRead br=new BufferedReader(new FileReader(“FileWriter Demo.java”));
缓冲流的特殊功能:
BufferedWriter
void newLine():写一个换行符,这个换行符由系统决定
BufferedRead:
String readLine():一次读取 一行数据,但是不读取换行符。