第十周学习总结
1通过File类打开一个文件 。
2通过字节流或字符流的子类指定输出位置。
3经行读写操作。
4.关闭输入输出。
一.字节流:
字节流以操作byte类型数据为主,主要操作类为OutputStream类和InputSream类。
字节输出流OutputStream是整个IO包中字节输出流最大父类,其操作方法见书P380 表12-3。
字节输入流InputSream为抽象类,需依靠子类,其主要方法见书p384 表12-4。
二.字符流:
字符输出流Writer本身也是个抽象类,常用方法见书p388 表12-5。
字符输入流Reader是用字符的方法从文件中取出数据,它也是个抽象类,常用方法见书p390 表12-6。
字节流和字符流除了操作代码不同外,字符流还比字节流多出缓存区。
字节流在操作的时候本身是不会用到缓冲区的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的。
字节流在操作文件时,即使不关闭资源,文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容。
字符流的缓冲区,可以使用flush方法强制进行刷新缓冲区,这时可以在不close的情况下输出内容。
字节-字符转换流
OutputStreamWriter和InputStreamReader
在整个IO包中除了这两个流之外,还存在字节流-字符流的转换类。
OutputStreamWriter:是Writer的子类,将输出的字符流转换为字节流。即:将一个字节流的输出对象变为字节流的输出对象
InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。
在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容。
FileInputStream 常用的构造方法主要有如下两种重载形式。
FileInputStream:通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
FileInputStream:通过打开一个到实际文件的链接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。
要格式化输出: PrintStream, PrintWriter
flush():刷新缓冲区
close(): 关闭流对象,先刷新,再关闭
三.转换流:
OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去。
四.字节数组:
ByteArrayInputStream
ByteArrayOutputStream
五.字符数组
CharArrayReader
CharArrayWriter
六.字符串
StringReader
StringWriter
七.管道流
PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流。这个两个流必须同时使用。
八.打印流
System类当中的方法:
System.in:标准的输入流 默认是键盘录入
System.out:标准的输出流 默认是输出到控制台。
System.setIn(InputStream in); 改变来源。
System.setOut(PrintStream ps);
PrintStrea PrintStream(File file)
九.创建具有指定文件且不带自动行刷新的新打印流。
PrintStream(File file, String csn)
PrintStream(OutputStream out)
PrintStream(OutputStream out, boolean autoFlush) 自动刷新。
PrintStream(String fileName)
总结:这周老师讲课好快啊,虽然说是都是有点雷同的知识点,但是还是需要全神贯注听 而且还有点消化不过来,慢慢来吧,消化还是得靠自己.