IO Structure
2020-07-13 15:19:07 0 举报
Java_BIO_基础类
作者其他创作
大纲/内容
SequenceInputStream
将两个或多个InputStream转换成单一的InputStream
PrintWriter (Writer out)PrintWriter(OutputStream out)PrintWriter(String fileName)PrintWriter(File file)
FilterReader(Reader in)
wirte()-->写入缓冲区数组-->底层输出流
abstract OutputStream
DataOutputStream
与DataInputStream搭配使用,此类定义了大量wirte方法如writeChar()/writeFloat()/writeUTF()向由构造方法传入的OutputStream对象中写8大基本类型数据和String对象
此类通常用来向文件中写入字符数据:File file = new File(\"基本操作.txt\");FileWriter writer = new FileWriter(file);// 对写入的字符缓冲BufferedWriter bufWriter = new BufferedWriter(writer);bufWriter.write(\"====> This is a test data\");bufWriter.close();
FileReader(String fileName)FileReader(File file)FileReader(FileDescriptor fd)
此类的readLine()用来读取一行文本内容并返回(不包括行结束符).一行通常以换行符\"\\",回车符\"\\"或回车换行符\"\\\"结束File file = new File(\"基本操作.txt\");FileReader reader = new FileReader(file);BufferedReader bufReader = new BufferedReader(reader);String lineContent = null;while ((lineContent = bufReader.readLine()) != null) { System.out.println(lineContent);}
BufferedInputStream(InputStream in)
PipedReader
PrintStream
提供了打印各种数据的能力,打印基本类型数据时都会将其强制转换为String再打印。此类几乎从不抛出IOException,在写入一个字节数组、换行符\"\\"或调用println()后flush()将会被自动调用。System类的静态字段out/err就是一个PrintStream对象
StringBufferInputStream
以String作为数据源,构造方法传入的String对象被赋值给内部的String引用,此后所有操作都对此String进行
FileReader
以文件作为数据源从中读取字符,构造方法传入能定义一个文件的File、FileDescriptor对象或String文件路径,与FileInputStream区别是FileInputStreawm适合读取原始的字节文件如图片,FileReader适合读取字符此类具体实现是通过能定义一个文件的File、FileDescriptor或String文件路径初始化一个FileInputStream对象,将其传递给父类InputStreamReader,后者将其封装成StreamDecoder对象,用来从流中读取字节并按照指定字符集解码成字符
abstract FilterReader
一个“装饰器”抽象类, 内部声明了一个Reader应用,构造方法需要传入一个Reader对象,所有操作都是对传入Reader对象进行
ObjectOutputStream
将对象序列化为字节流
Abstract Reader
FilterInputStream
StringBufferInputStream(String s)
PrintWriter
打印对象的格式化表述到文本输出流,此类不包含打印原始字节的print()方法,打印基本类型数据时都会将其强制转换为String再打印
ByteArrayOutputStream(int bufSize)
PipedWriter
FileInputStream(String fileName)FileInputStream(File file)FileInputStream(FileDescriptor fdObj)
PushbackInputStream
abstract InputStream
OutputStreamWriter(OutputStream out)
底层输入流-->填充缓冲区数组--> read()
CharArrayWriter(int bufSize)
BufferedWriter(Writer out)
LineNumberInputStream
跟踪输入流中的行号
StringReader(String s)
FileInputStream
PushbackReader
BufferedReader(Reader in)
FileOutputStream(String name)FileOutputStream(File file)FileOutputStream(FileDescriptor fdObj)
DataOutputStream(OutputStream out)
输入流--读取--> buff[] --写出--> 输出流
FileOutputStream
FilterOutputStream(OutputStream out)
ByteArrayInputStream(byte buf[])
StringReader
以String作为数据源,构造方法传入的String对象被赋值给内部String引用,此后所有操作都是对此String进行
PipedInputStream
BufferedInputStream
内部定义了一个默认大小为8192的byte[]缓冲区,从通过构造函数传入的InputStream读取的数据先填充到byte[]缓冲区,调用read()方法读取数据时从byte[]缓冲区中读而不操作底层输入流
InputStreamReader(InputStream in)
CharArrayWriter
目的地是内部定义的一个默认大小为32的char[],构造方法也可以传入一个int数来确定char[]大小,通过write()写入的数据将存入此char[]toCharArray()返回此char[]的拷贝toString()以String形式返回byte[]中内容writeTo(Writer) 将char[]内容写出到指定流中
Abstract class for reading character streams
abstract FilterWriter
装饰器基类?但是没有发现有继承类
PipedOutputStream
InputStreamReader【正】
字节流到字符流的桥梁,构造方法传入一个InputStream对象,再通过其构建一个StreamDecoder对象,StreamDecoder负责读取字节并使用指定字符集解码成字符
FileWriter(String fileName)FileWriter(File file)FileWriter(FileDescriptor fd)
BufferedWriter
装饰器类,内部定义了一个默认大小为8192的char[]缓冲区,通过write()写入的字符先写入char[]缓冲区,待char[]满或调用flush()方法时再写出到底层由构造方法传入的Writer对象
StringWriter
目的地是内部定义的一个StringBuffer,构造方法也可以传入一个int数指定StringBuffer大小.wirte()是调用append()向内部StringBuufer追加字符;toString()就是调用StringBuffer的toString();getBuffer()用以返回此StringBuffer
DataInputStream
与DataOutputStream搭配使用,此类定义了大量read方法如readInt()/readChar()/readFloat()/readUTF()用来从由构造方法传入的InputStream对象中读8大基本类型数据和String对象
Abstract Writer
ByteArrayInputStream
以byte[]作为数据源, 构造方法传入的byte[]被赋值给内部一个byte[]引用,传入后byte[]不可变,之后所有的操作如read()都是对内部的byte[]进行
FilterOutputStream
装饰器类构造方法传入一个OutputStream对象,所有操作如write()都是对传入OutputStream对象进行
CharArrayReader(char buf[])
CharArrayReader
以char[]作为数据源,构造方法传入的char[]被赋值给内部char[]引用,此后所有操作都是对此char[]进行
ObjectInputStream
BufferedOutputStream
内部定义了一个默认大小为8192的byte[]缓冲区,调用write()写入的字节先写入byte[]缓冲区,待byte[]满或调用flush()方法时再写出到底层由构造方法传入的OutputStream中
InputStream read(byte[] b)Reader read(char[] cbuf)对于输入流,都是将读取的数据存入参数指定的缓冲数组,返回实际读取的字节/字符数,即:输入流--读取--> buff[]
OutputStream write(byte[] b)write(char[] cbuf)对于输出流,将缓冲数组byte[] b中的数据写出到流中,即:buffer[] --写出--> 输出流
OutputStreamWriter[反]
从字符流到字节流的桥梁,构造方法传入一个OutputStream对象,再通过其构建一个StreamEncoder对象,StreamDecoder负责将通过write()写入的字符编码成字节传递给write()的字符不会缓冲,但字符编码产生的字节会被缓冲
DataInputStream(InputStream in)
ByteArrayOutputStream
目的地是内部定义的一个默认大小为32的byte[],构造方法也可以传入一个int数来确定byte[]大小,通过write()写入的数据将存入此byte[]toByteArray()返回此byte[]的拷贝toString()以String形式返回byte[]中内容writeTo(OutputStream)将byte[]内容写出到指定流中
BufferedReader
一个装饰类,内部定义了一个默认大小为8192的char[]作为缓冲区,从通过构造函数传入的Reader读取的数据先存入char[]缓冲区,调用read()方法读取数据时从char[]缓冲区读而不操作底层输入流
FileWriter
目的地是文件,构造方法传入能定义一个文件的File、FileDescriptor或String文件路径,与FileOutputStream区别是FileOutputStream适合向文件中写入原始的字节数据如图片,FileReader适合向文件写字符。此类具体实现是通过能定义一个文件的File、FileDescriptor或String文件路径初始化一个FileOutputStream对象,将其传递给父类OutputStreamWriter,后者将其封装成StreamEncoder对象,用来将写入的字符编码成字节写入到文件中
StringWriter()StringWriter(int initialSize)
BufferedOutputStream(OutputStream out)
收藏
0 条评论
下一页