标题: 21期黄国兵 学习周记 [打印本页] 作者: 黄国兵 时间: 2018-12-19 18:38 标题: 21期黄国兵 学习周记 一.Flie类
(1)概述:java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作
重点记住: file 文件 directory 文件夹 path 路径
(2)构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。
public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例。
(3)
绝对路径,相对路径;
绝对路径:从盘符开始的路径,这是一个完整的路径。
相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。
获取功能的方法:
(4)public String getAbsolutePath() :返回此File的绝对路径名字符串。
public String getPath() :将此File转换为路径名字符串。
public String getName() :返回由此File表示的文件或目录的名称。
public long length() :返回由此File表示的文件的长度
(5)判断功能的方法:
public boolean exists() :此File表示的文件或目录是否实际存在。
public boolean isDirectory() :此File表示的是否为目录。
public boolean isFile() :此File表示的是否为文件
(6)文件的删除和创建
public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
public boolean delete() :删除由此File表示的文件或目录。
public boolean mkdir() :创建由此File表示的目录。
public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录
总结:创建文件必须在已经存在的目录中创建,不会帮我们创建文件夹,删除文件夹,不会删除存有文件的文件夹,必须先删除文件,才能删除文件。
二.递归
(1)递归:值在当前方法内调用自己的这种现象
分类:直接递归和间接递归
注意事项:注意事项:
递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
构造方法,禁止递归
一.IO流
(1)根据数据的流向分为:输入流和输出流。
输入流 :把数据从 其他设备 上读取到 内存 中的流。
输出流 :把数据从 内存 中写出到 其他设备 上的流。
(2)格局数据的类型分为:字节流和字符流。
字节流 :以字节为单位,读写数据的流。
字符流 :以字符为单位,读写数据的流
(3)顶级父类们:字节输入流InputStre 字节输出流OutputStream 字符输入流Reader 字符输出流Writer
二..字节输出流【OutputStream】
(1).字节输出流的基本共性功能方法:
public void close() :关闭此输出流并释放与此流相关联的任何系统资源。
public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。
public void write(byte[] b) :将 b.length字节从指定的字节数组写入此输出流。
public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。
public abstract void write(int b) :将指定的字节输出流。
(2)FileOutputStream
1.写出字节: write(int b) 方法,每次可以写出一个字节数据
2.写出字节数组: write(byte[] b) ,每次可以写出数组中的数据
3. 写出指定长度字节数组: write(byte[] b, int off, int len) ,每次写出从off索引开始,len个字节,
(3)数据追加续写(true 则不覆盖重写,而是续写,false 则覆盖重写)数据追加续写Windows系统里,换行符号是 \r\n
三.字节输入流【InputStream】
(1).基本共性功能方法:
public void close() :关闭此输入流并释放与此流相关联的任何系统资源。
public abstract int read() : 从输入流读取数据的下一个字节。
public int read(byte[] b) : 从输入流中读取一些字节数,并将它们存储到字节数组 b中
(2).FileInputStream类
FileInputStream是文件输入流,从文件中读取字节
(3).读取字节数据
1.读取字节: read 方法,每次可以读取一个字节的数据,提升为int类型,读取到文件末尾,返回 -1
2. 使用字节数组读取: read(byte[] b) ,每次读取b的长度个字节到数组中,返回读取到的有效字节个数,读取到末尾时,返回 -1
四.字符流
(1).字符输入流【Reader】
public void close() :关闭此流并释放与此流相关联的任何系统资源。
public int read() : 从输入流读取一个字符。
public int read(char[] cbuf) : 从输入流中读取一些字符,并将它们存储到字符数组 cbuf中
(2)FileReader类
FileReader 类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
(3)读取字符数据
1.读取字符: read 方法,每次可以读取一个字符的数据,提升为int类型,读取到文件末尾,返回 -1 ,循环读取
2. 使用字符数组读取: read(char[] cbuf) ,每次读取b的长度个字符到数组中,返回读取到的有效字符个数,读取到末尾时,返回 -1
(4)字符输出流【Writer】
void write(int c) 写入单个字符。
void write(char[] cbuf) 写入字符数组。
abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分,off数组的开始索引,len写的字符个数。
void write(String str) 写入字符串。
void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。
void flush() 刷新该流的缓冲。
void close() 关闭此流,但要先刷新它
五.IO异常的处理:用 try...catch...finally 代码块,处理异常部分
六.Properties类
public Object setProperty(String key, String value) : 保存一对属性。
public String getProperty(String key) :使用此属性列表中指定的键搜索属性值。
public Set<String> stringPropertyNames() :所有键的名称的集合。