A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 赵顺超 中级黑马   /  2014-7-30 08:36  /  870 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

IO流
1、IO流概述
        (1)用来处理设备(硬盘,控制台,内存)间的数据。
        (2)java中对数据的操作都是通过流的方式。
        (3)java用于操作流的类都在io包中。
        (4)按照流操作的数据的类型不同:分为字节流和字符流。字符流是为了方便中文的操作而来的。        
        (5)按照流的流向不同分为:输入流,输出流
2、IO流常用基类:
        (1)字节流
                输出字节流:OutputStream:字节写入流抽象类
                                |--->FileOutputStream:
                                                        字节写入流
                                |--->BufferedOutputStream:
                                                        字节写入流缓冲区
                                |--->PrintStream:
                                                        打印流
                输入字节流:InputStream:字节读取流抽象类
                                |--->FileInputStream:
                                                        字节读取流
                                |--->BufferedInputStream:
                                                        字节读取流缓冲区
        (2)字符流        
                输出字符流:Writer:字符写入流的抽象
                                |--->FileWriter:
                                                        字符写入流
                                |--->BufferedWriter:
                                                        字符写入流缓冲区
                                |--->OutputStreamWriter:
                                                        字符通向字节的转换流(涉及键盘录入时用)
                                |--->OutputStreamWriter:        
                                                        打印流,可处理各种类型的数据
                输入字符流:Reader: 字符读取流的抽象类
                                |--->FileReader:
                                                        字符读取流
                                        |--->LineNumberReader:
                                                                跟踪行号的缓冲字符读取流
                                |--->BufferedReader:
                                                        字符读取流缓冲区
                                |--->InputStreamReader:
                                                        字节通向字符的转换流(涉及键盘录入时用)
        (3)IO流常用基类方法摘要:
                **字节写入流:OutputStream:
                        void close() 关闭此输出流并释放与此流有关的所有系统资源。
                        void flush()刷新此输出流并强制写出所有缓冲的输出字节。
                        abstract  void write(int b)  将指定的字节写入此输出流。
                        void write(byte[] b) 将 b.length 个字节从指定的 byte 数组写入此输出流。   
                        void write(byte[] b, int off, int len)
                                        将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
                **字节读取流:InputStream:
                        void close() 关闭此输入流并释放与该流关联的所有系统资源。
                        int available() (特有方法!!)
                                返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。
                        abstract  int read() 从输入流中读取数据的下一个字节。
                        int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
                        int read(byte[] b, int off, int len)  将输入流中最多 len 个数据字节读入 byte 数组。
                        long skip(long n) 跳过和丢弃此输入流中数据的 n 个字节。
           
         
           
         

                        
                **字符写入流:Writer:
                        abstract  void close() 关闭此流,但要先刷新它。
                        abstract  void flush() 刷新该流的缓冲。
                        void write(int c) 写入单个字符。
                        void write(char[] cbuf) 写入字符数组。         
                        abstract  void write(char[] cbuf, int off, int len) 写入字符数组的某一部分。
                        void write(String str) 写入字符串。
                        void write(String str, int off, int len) 写入字符串的某一部分。

                **字符读取流:Reader:
                        abstract  void close() 关闭该流并释放与之关联的所有资源。
                        int read() 读取单个字符。
                        int read(char[] cbuf)  将字符读入数组
                        abstract  int read(char[] cbuf, int off, int len) 将字符读入数组的某一部分。
                        long skip(long n)  跳过字符。
3、IO流常用字节流基类的子类:
        **写入流:
        (1)FileOutputStream:
                **构造方法:
                FileOutputStream(String name)
                        创建一个向具有指定名称的文件中写入数据的输出文件流。
                FileOutputStream(String name, boolean append)
                        创建一个向具有指定 name 的文件中写入数据的输出文件流。
                FileOutputStream(File file)
                        创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
                FileOutputStream(File file, boolean append)
                        创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
                **方法摘要:
                public void flush()
                void close() 关闭此文件输出流并释放与此流有关的所有系统资源。
                void write(int b) 将指定字节写入此文件输出流。
                void write(byte[] b, int off, int len)
                        将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。
                void write(int b) 将指定字节写入此文件输出流。
        (2)BufferedOutputStream:
                **构造方法:
                BufferedOutputStream(OutputStream out)
                        创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
                BufferedOutputStream(OutputStream out, int size)
                        创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。
                **方法摘要:
                void flush() 刷新此缓冲的输出流。         
                void write(byte[] b, int off, int len)
                        将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此缓冲的输出流。
                void write(int b) 将指定的字节写入此缓冲的输出流。
        (3)PrintStream:打印流,可将各种类型的数据原样打印,有自动刷新功能
                **构造方法:
                PrintStream(String fileName)
                        创建具有指定文件名称且不带自动行刷新的新打印流。
                PrintStream(File file)
                        创建具有指定文件且不带自动行刷新的新打印流。
                PrintStream(OutputStream out)
                        创建新的打印流。
                PrintStream(OutputStream out, boolean autoFlush) (当autoFlush为true时具有自动刷新功能)
                        创建新的打印流。
                **方法摘要:
                PrintStream append(char c)
                        将指定字符添加到此输出流。
                void close()
                        关闭流。
                void flush()
                        刷新该流的缓冲。
                void print(各种类型的数据:)
                        打印各种类型的数据
                void println(各种类型的数据:):自动换行
                        打印各种类型的数据
                void write(byte[] buf, int off, int len)
                        将 len 字节从指定的初始偏移量为 off 的 byte 数组写入此流。
                void write(int b)
                        将指定的字节写入此流。

        

2 个回复

倒序浏览
**读取流:
        (1)FileInputStream:
                **构造方法:
                FileInputStream(String name)
                        通过打开一个到实际文件的连接来创建一个 FileInputStream,
                        该文件通过文件系统中的路径名 name 指定。
                FileInputStream(File file)
                        通过打开一个到实际文件的连接来创建一个 FileInputStream,
                        该文件通过文件系统中的 File 对象 file 指定。
                **方法摘要:
                int available() (字节读取流特有方法!!!)
                        返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。
                int read()
                        从此输入流中读取一个数据字节。
                int read(byte[] b)
                        从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
                int read(byte[] b, int off, int len)
                        从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
                long skip(long n)
                        从输入流中跳过并丢弃 n 个字节的数据。
        (2)BufferedInputStream:
                **构造方法:
                BufferedInputStream(InputStream in)
                        创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
                BufferedInputStream(InputStream in, int size)
                        创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
                **方法摘要:
                int available() (字节读取流特有方法!!!)
                        返回可以从此输入流读取(或跳过)、且不受此输入流接下来的方法调用阻塞的估计字节数。
                int read()
                        参见 InputStream 的 read 方法的常规协定。
                int read(byte[] b, int off, int len)
                        从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。
                long skip(long n)
                        参见 InputStream 的 skip 方法的常规协定。
回复 使用道具 举报
的一段话。字符流错字。请纠正
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马