Day22 转换流 File类
Day22
转换流 File类
键盘输入流
- InputStream
- in.read()这类方法代表阻塞式方法。
- 系统的Stream流对象只有一个,一旦关闭就不能再在同一个程序中开启了,会随着系统的出现而出现,随系统的关闭而关闭。
转换流
- 转换工具存在于字符流里。
- InputStreamReader和OutputStreamWriter两个类都是字符流的子类对象,其作用是完成字节流和字符流的转换。也称为转换流。
InputStreamReader
读取字节流,解码后输出字符流。
OutputStreamReader
读取字符流,编码后转成字节流
两个定式写法
''BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
''BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(System.out));
流的操作规律
- 明确源和目的(汇)
源:InputStream和Reader体系
目的:OutputStream和Writer - 明确数据是否是纯文本数据
纯文本用字符流Writer和Reader
否则用字节流InputStream和OutputStream - 明确具体的设备
源设备:
- 硬盘 File
- 键盘 System.in
- 内存 数组
- 网路 Socket流
目的设备:
- 硬盘 File
- 控制台 System.out
- 内存 数组
- 网路 Socket流 - 是否需要其他额外功能
- 是否需要高效(缓冲区) Buffered
按照指定编码进行转换
''OutputStreamWriter osw = new OutputStreamWriter osw(new FileOutputStreamWriter("filename", "UTF-8"));
File类
- 将文件和文件夹封装成了对象,可以对文件与文件夹的属性信息进行操作。
- File.separator是名称分隔符
构造函数
''File name = new File(String filename)
''File name = new File(“c:/”, String filename);
''File name = new File(f, String filename);
获取方法
- 获取文件名称 getName()
- 获取文件路径 getPath() getAbsolutePath()
- 获取文件大小 long length()
- 获取文件修改时间 long lastModified()
- 获取父目录文件 getParent()
创建与删除
文件的创建和删除
- boolean createNewFile() 如果存在的话就不会创建了
- boolean delete() 删除相应的文件
- boolean deleteOnExit() 在退出程序时自动删掉文件
文件夹的创建和删除 - boolean mkdir() 创建文件夹
- boolean delete() 删除文件夹,只能删除空文件夹
- boolean mkdirs() 可以创建多级目录
判断
- boolean exists() 文件是否存在
- isDirectory()
- isFile()
重命名
- renameTo() 可以用于完成剪贴功能
目录和容量获取
File[] listRoots()静态方法,不需要创建对象。列出根目录- getFreeSpace()
- getTotalSpace()
- getUsableSpace()
String[] list()列出当前目录下所有的文件及文件夹名称File[] listFiles()同上,但是拿到的对象是File对象。
过滤器
String[] list(FilenameFilter filter)重载过的list方法- 需要自己实现FilenameFilter接口,以此完成自定义的过滤功能。
File[] listFiles(FileFilter filter)同上
浙公网安备 33010602011771号