I/O流:
流是java I/O的基础,是java语言对I/O的一个最基本的抽象。之所以采用流作为I/O醉基本的抽象,是因为流有两个最基本的特性:一是它含有流质,而是它有方法。在计算机中,流质就是数据,方向就是读或写。
文件类:
File file = new File("c:testTest.java");
绝对路径:
1.C:testTest.java从盘符开始找
2.从项目根目录开始找
相对路径:
当前编辑文件的路径相对于你要找到文件的路径。
文件类的一些方法:
boolean flag = file.exists(); 查找文件是否存在
file.createNewFile();创建新文件
file.delete(); 删除文件
file.getAbsolutePath(); 得到路径 返回String
file.getName(); 得到文件名
file.getParent(); 得到父路径
file.ifDirectory(); 判断是否是文件夹
List转换为指定类型的数组
String [] newFileNames = list.toArray(new String[list.size()]);
流的分类:
按照方向划分:输入流、输出流
按照类型划分:字节流、字符流
按照操作方式划分:节点流、过滤流
转换流
字节流:
字节流用于处理二进制文件。所有字节流都继承与抽象类InputStream和OutputStream两个父类。其中InputStream为读取字节流的父类,OutputStream为写入字节流的父类。
InputStream方法
方法 | 描述 |
---|---|
int available() | 返回可从该输入流中读取的字节数 |
void close() | 关闭输入流,并释放所有与该流相关联的系统资源 |
abstract in read() | 从输入流读取下一个字节。读取完毕,返回-1 |
int read(byte [] b) | 从输入流读取一些字节,并将这些字节存入缓冲数组b,读取完毕,返回-1 |
int read(byte[] b,off,int len) | 从输入流指定位置off开始读取数据的前len个字节,并将其读入字节数据中。读取完毕,返回-1 |
字符流:
字符流用于处理文本文件。所有字符流都继承于抽象类 Reader 和 Writer 两个父类。其中 Reader 为读取字符流的父类, Writer 为写入字符流的父类。
Reader与InputStream相似,用于从流中读取数据。Reader是以字符为单位操作流,常用的方法有:
方法 | 描述 |
int read() | 从流中读取一个字符,并将其返回,读到末尾返回-1 |
int read(char[] buffer) | 将流中的字符读到字符数组buffer中,返回读出的字符数 |
int read(char[] buffer , int off ,int len) | 将流中指定位置off开始读取的前len个字符,并将其读入字节型数据中。读取完毕,返回-1 |
void close() | 关闭输入流并释放所有与流相关联的系统资源 |
缓冲流:
1 FileInputStream fis = new FileInputStream("C:\test\Test.java"); 2 BufferedInputStream bis = new BufferedInputStream(fis);
flush()方法能够冲洗,在关闭缓冲流的时候,会默认调用flush();
BufferedReader中有个方法, readLine()是一行一行的读,更加方便。