第十周课程总结
File类
· 在整个io包中,唯一表示与文件本身有关的类就是File类。
· 使用File类可以进行创建或删除文件等常用操作。
· 要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示:
public File(String pathname)
→实例化File类的时候,必须设置好路径。
File类中的主要方法和常量
public static final String pathSeparator | 常量 | 表示路径的分隔符(windows是:“;” ) |
public static final String separator | 常量 | 表示路径的分隔符( windows是:“” ) |
public File(String pathname) | 构造 | 创建File类对象, 传入完整路径 |
public boolean createNewFile() throws IOException | 普通 | 创建新文件 |
public boolean delete() | 普通 | 删除文件 |
public boolean exists() | 普通 | 判断文件是否存在 |
public boolean isDirectory() | 普通 | 判断给定的路径是否是一个目录 |
public long lenglh() | 普通 | 返回文件的大小 |
public String[] list() | 普通 | 列出指定目录的全部内容,只是列出了名称 |
public Filc[] listFilcs() | 普通 | 列出指定目录的全部内容,会列出路径 |
public boolean mkdir() | 普通 | 创建一个目录 |
public boolean renameTo(File dest) | 普通 | 为已有的文件重新命名
|
流
· 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。
追加新内容
· 之前的所有操作中,如果重新执行程序, 则肯定会覆盖文件中的已有内容, 那么此时可以通过
FielOutputStream向文件中追加内容,FileOutputStream的另外一个构造方法:
· public FileOutputStream(File file,boolean append) throwsFileNotFoundException
· 在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容。
使用FileWriter追加文件的内容
· 在使用字符流操作的时候,也可以实现文件的追加功能, 直接使用FileWriter类中的以下构造即可实现追加:
· public FileWriter(File file,boolean append) throwsIOException
· 将append的值设置成true,就表示追加。
OutputStreamWriter和InputStreamReader
· 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。
· OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变为字节流输出对象。
· InputStreamReader: 是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。
打印流
· 在整个IO包中,打印流是输出信息最方便的类,主要包含:
· 字节打印流(PrintStream)
· 字符打印流(PrintWriter)
· 打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等。
System类的常量
· System表示系统类,实际上在java中System类也对IO给予了一定的支持。
public static final PrintStream out | 对应系统标准输出,一 般是显示器 |
public static final PrintStream.err | 错误信息输出 |
public static final InputStream in | 对应着标准输入,一般是键盘 |
字节流
· 字节流主要是操作byte类型数据,以byte数组为准,主要操作类就是OutputStream、InputStream。
· 字节输出流: OutputStream
· 字节输入流: InputStream
字节流与字符流
· 在java.io包中操作文件内容的主要有两大类:
· 字节流
· 字符流
· 两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使用的是InputStream, 在字符流中输出主要是使用Writer类完成, 输入主要是使用Reader类完成。
字节输入流: InputStream
· 既然程序可以向文件中写入内容,则就可以通过InputStream从文件中把内容读取进来,首先来看InputStream类的定义:
· public abstract class InputStream extends Objectimplements Closeable
· 与OutputStream类一 样, InputStream本 身也是-一个抽象类,必须依靠其子类, 如果现在是从文件中读取,子类肯定是FileInputStream。观察FileInputStream类的构造方法:
· public FilelnputStream(File file) throws FileNotFoundException