java io源码分析



InputStream类源码分析
1、这是一个抽象类,是java io流字节流的基类。
2、主要方法有read()
从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。
子类必须提供此方法的一个实现。
返回: 下一个数据字节;如果到达流的末尾,则返回 -1。
3、public int read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。以整数形式返回实际读取的字节数。
4、public int read(byte[] b,
                int off,
                int len)
         throws IOException
         将输入流中最多 len 个数据字节读入 byte 数组。尝试读取 len 个字节,但读取的字节也可能小于该值。以整数形式返回实际读取的字节数。
5、public long skip(long n) throws IOException 跳过和丢弃此输入流中数据的 n 个字节。
6、public void reset()
           throws IOException
将此流重新定位到最后一次对此输入流调用 mark 方法时的位置。
7、他的子类ByteArrayInputSteam类从内存中的字节数组中读取数据,因此它的数据源是一个字节数组。
   StringBufferInputStream 此类允许应用程序创建输入流,在该流中读取的字节由字符串内容提供。
   FileInputStream 从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。
   FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。
   FileInputStream(File file)
           通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
   FileInputStream(String name)
           通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。
   ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。


8、Reader
用于读取字符流的抽象类。
9、直接已知子类: BufferedReader, CharArrayReader, FilterReader, InputStreamReader, PipedReader, StringReader
10、只有BufferedReader类具有readLine()方法,
public String readLine()
                throws IOException
读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。

返回: 包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null

你可能感兴趣的:(面试题)