IO流

File:
是文件和目录的路径名的抽象表示

创建文件:
file.createNewFile()//创建文件 会抛出异常 并如果文件存在就不创建且返回false
file.mkdir()//创建目录 会抛出异常 并如果目录存在就不创建且返回false
file.mkdirs()//创建多级目录
file.delete()//删除目录 如果一个目录里面有内容必须一级一级删除

路径问题:
绝对路径:
是以盘符开头的路径
相对路径:
不是以盘符开头的路径,是在当前项目下的路径

判断:
file.isDirectory()//判断是否有目录
file.isFile()//判断是否有文件
file.exists()//判断是否存在
获取:
file.getAbsolutePath()//获取绝对路径
file.getPath()//获取相对路径
file.getname()//获取名称

IO流分类:
流向:
读 输入流
写 输出流
数据类型:
字节流
文本文件打开看不懂的
字符流
文本文件
字节流:
InputStream:输入流
A:创建字节输入流对象
B:调用读数据方法
C:关流
FileInputStream inputStream = new FileInputStream("文件名");
//一次读一个字节
int by;
while (( by=inputStream.read()) != -1){
System.out.print((char) by);
}
//一次读一个字节数组
byte[] bytes = new byte[1024];
int len;
while ((len=inputStream.read(bytes)) != -1){
System.out.print(new String(bytes,0,len));
}

OutputStream:输出流
A:调用系统功能创建文件
B:创建字节输出流对象
C:让对象指向文件
FileOutputStream:
FileOutputStream fos = new FileOutputStream(new File("文件名"));
//追加写入加一个参数true
FileOutputStream fos = new FileOutputStream(new File("文件名"),true);
fos.write(int i)//写一个字节
//关流注意必须
fos.close();
"字符串".getBytes()//将一个字符串转换为字节数组
字节缓冲区流:
BufferOutputStream:输入
BufferInputStream:输出
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("a.txt"));
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("b.txt"));
编码表:
ASCII码表:
'a' 97
'A' 65
'0' 48
字符流:
Reader:输入流
InputStreamReader:
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("c.txt"));
//用的是char[]数组
//简化
FileReader fileReader = new FileReader("");

Writer:输出流
OutputStreamWriter:
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("e.txt"), "GBK");
//简化
FileWriter fileWriter = new FileWriter("");

常用的IO:
//记住关流close
字符缓冲区流:
用char[]
BufferedReader(new FileReader(""))输入
br.readLine()//读取一行数据不包括换行符如果没有后续内容输出null
BufferedWriter(new FileWriter(""))输出
br.newLine()//加换行符
br.flush()//刷新文件
字节缓冲区流:
用Byte[]
BufferOutputStream(new FileOutputStream("")):输入
BufferInputStream(new FileOutputStream("")):输出
编码表:
ASCII码表:
'a' 97
'A' 65
'0' 48

获取当前的毫秒:
System.currentTimeMillis()

posted @ 2020-07-09 14:47  小胡code  阅读(87)  评论(0编辑  收藏  举报