第十周课程总结
字节流:
1、当把数据传到程序中的操作叫输入,用InputStream类。
2、当把数据从程序中传出的操作叫输出,用OutputStream类。
字符流:
1、字符输出流:Writer。
2、字符输入流:Reader。
字节流与字符流的转换:
OutputStreamWriter和InputStreamReader
在整个IO包中,实际上就是字节流和字符流,但是除了这两个流之外,还存在一组字节流-字符流的转换类。
•OutputStreamWriter:是Writer的子类,将输出的字符流转换为字节流。即:将一个字节流的输出对象变为字节流的输出对象
•InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。
在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容。
文件中换行为:
。
字节流与字符流的区别:
字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的。
字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,
说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容。
转换流:
OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去。
字节--->字符 : 看不懂的--->看的懂的。 需要读。输入流。 InputStreamReader
字符--->字节 : 看的懂的--->看不懂的。 需要写。输出流。 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)