标签:文件系统 管道 方法 重载 字符转换 创建 tst OLE 存在
1.Java的字节流
InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先。
2.Java的字符流
Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先。
InputStream,OutputStream,Reader,writer都是抽象类。所以不能直接new
1、当把数据传到程序中的操作叫输入,用InputStream类。
2、当把数据从程序中传出的操作叫输出,用OutputStream类。
1、字符输出流:Writer。
2、字符输入流:Reader。
OutputStreamWriter和InputStreamReader
在整个IO包中,实际上就是字节流和字符流,但是除了这两个流之外,还存在一组字节流-字符流的转换类。
?OutputStreamWriter:是Writer的子类,将输出的字符流转换为字节流。即:将一个字节流的输出对象变为字节流的输出对象
?InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。
在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容。
文件中换行为:\r\n。
FileInputStream(File file):通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
FileInputStream(String name):通过打开一个到实际文件的链接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。
1 、要格式化输出: PrintStream, PrintWriter
flush(): 刷新缓冲区
close(): 关闭流对象–>先刷新,再关闭
字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的。
字节流在操作文件时,即使不关闭资源(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)?
这就是我本周的学习内容总结。
标签:文件系统 管道 方法 重载 字符转换 创建 tst OLE 存在
原文地址:https://www.cnblogs.com/neir/p/11771753.html