I/O
文件对象
创建文件:File f1= new File(“绝对路径”)
绝对路径:d:/XXXX
相对路径:直接写
file f3 = new file(f1,"")把f1作为父目录创建文件
f3.getAbsolutePath():获取目录
文件常用方法
f.exist()文件是否存在
f.isDirectory()文件夹
f.isFile()文件
f.length()长度
流
流就是一系列的数据
输入流: InputStream
输出流:OutputStream
字节流
ADCII码
形式读取文件内容
inputstream是字节输入流,同样也是抽象类,只提供方法不提供方法的具体实现形式
Fileinputstream是inputstream的子类
1.创建流:fileinputstream fis =new fileinputsream(f文件名)
2.创建数组长度位文件长度;bite []a =new bite[(int )f.length]
3.读取内容:fis.read(a);可以打印
4.关闭流:fis.close
写入文件内容
关闭流
1.再try中关闭(文件异常:不推荐)
2.再finally中关闭:引流(定义一个流)再try外面;要判断流是否是空的——在进行一次catch处理
3.try(流的定义)
字符流
流的读取:FileReader 是Reader子类,以FileReader 为例进行文件读取
流写入
中文问题
缓存流
字节流和字符流需要读取硬盘效率差
缓存流一次性读取多个数据放在缓存区,缓存区数据读取完毕再到硬盘读取
写入道理相同:写入缓存区当缓存区的内容到达一定的量就写入硬盘
使用缓存流必须建立在存在的流的基础上
读取数据BufferedReader
写出数据
flush将数据立即写到硬盘中
数据流
DataInputStream 数据输入流
DataOutputStream 数据输出流
直接进行字符串的读写
数据流定义的时候需要在定义了普通流的基础上
使用数据流的writeUTF()和readUTF() 可以进行数据的格式化顺序读写
对象流
将对象以流的形式传输——序列化。该对象所对应的类,必须是实现Serializable接口
System
system.in控制台输入
InputStream is = System.in;控制台输入
Scanner读取字符串
Scanner s =new s.Scanner(System.in);
Scanner从控制台读取整数
Scanner s = new Scanner(System.in);
流关系图
类似前提问题,要有数据流钱必须要有字节流
END…