黑马程序员技术交流社区

标题: IO流知识总结 [打印本页]

作者: lilin661760    时间: 2015-10-2 15:38
标题: IO流知识总结
一、IO流的三种分类方式
    1.按流的方向分为:输入流和输出流
    2.按流的数据单位不同分为:字节流和字符流
    3.按流的功能不同分为:节点流和处理流
    二、IO流的四大抽象类:
    字符流:Reader Writer
    字节流:InputStream(读数据)
    OutputStream(写数据)
    三、InputStream的基本方法
    int read() throws IOException 读取一个字节以整数形式返回,如果返回-1已到输入流的末尾
    void close() throws IOException 关闭流释放内存资源
    long skip(long n) throws IOException 跳过n个字节不读
    四、OutputStream的基本方法
    void write(int b) throws IOException 向输出流写入一个字节数据
    void flush() throws IOException 将输出流中缓冲的数据全部写出到目的地
    五、Writer的基本方法
    void write(int c) throws IOException 向输出流写入一个字符数据
    void write(String str) throws IOException将一个字符串中的字符写入到输出流
    void write(String str,int offset,int length)
    将一个字符串从offset开始的length个字符写入到输出流
    void flush() throws IOException
一、IO流的三种分类方式
    1.按流的方向分为:输入流和输出流
    2.按流的数据单位不同分为:字节流和字符流
    3.按流的功能不同分为:节点流和处理流
    二、IO流的四大抽象类:
    字符流:Reader Writer
    字节流:InputStream(读数据)
    OutputStream(写数据)
    三、InputStream的基本方法
    int read() throws IOException 读取一个字节以整数形式返回,如果返回-1已到输入流的末尾
    void close() throws IOException 关闭流释放内存资源
    long skip(long n) throws IOException 跳过n个字节不读
    四、OutputStream的基本方法
    void write(int b) throws IOException 向输出流写入一个字节数据
    void flush() throws IOException 将输出流中缓冲的数据全部写出到目的地
    五、Writer的基本方法
    void write(int c) throws IOException 向输出流写入一个字符数据
    void write(String str) throws IOException将一个字符串中的字符写入到输出流
    void write(String str,int offset,int length)
    将一个字符串从offset开始的length个字符写入到输出流
    void flush() throws IOException
    将输出流中缓冲的数据全部写出到目的地
    六、Reader的基本方法
    int read() throws IOException 读取一个字符以整数形式返回,如果返回-1已到输入流的末尾
    七、节点流类型
    六、Reader的基本方法
    int read() throws IOException 读取一个字符以整数形式返回,如果返回-1已到输入流的末尾
七、节点流类型
八、访问文件之FileInputStream和FileOutputStream继承基类用于向文件中输入输出字节
    九、访问文件之FileReader和FileWriter继承基类用于向文件中输入输出字符
----输出流在构造函数第二个参数可以设置true意义为跟在已有文件后进行输入
----此类流会抛出FileNotFoundException需要对其进行显示捕捉
十、缓冲流:缓冲流要套接在相应的节点流之上,提高了读写的效率。
    此处理流的构造方法都得传相对应的基类类型
    BufferedReader:提供了readLine方法用于高校读取一行字符串
    BufferedWriter:提供了newLine用于写入一个行分隔符也就是换行
    BufferedInputStream 没多大用处
    BufferedOutputStream 没多大用处
    十一、转换流:主要作用将字节流转换成字符流。用处较大!
    转换流在构造时可以指定其编码集合
    InputStreamReader需要和InputStream套接
    OutputStreamWriter需要和OutputStream套接
    例:OutputStreamWriter osw = new OutputStreamWriter (new FileOutputStream(文件路径);
    方法例:osw.getEncoding(); 获得流的编码方式
    十二、数据流与字节数组流:
    数据流主要为实现可以存取Java原始数据类型如long,boolean
    数据流是字节流
    DataInputStream需要和InputStream套接
    DataOutputStream需要和OutputStream套接
    DataInputStream方法:readBoolean() readInt() read……()……
    readUTF():网络传输常用方法 读一个Unicode字符串
    DataOutputStream方法与DataInputStream基本对应为写的方法
    //此构造函数等于已可以往一个字节数组里输入内容
    ByteArrayOutputStream baos = new ByteArrayOutputStream ();
    //此方法为获取一个字节数组方法返回字节数组
    baos.toByteArray();
    //此方法获取字节数组占了多少字节
    new ByteArrayInputStream(一个字节数组)。available()
  十二、Print流
    Print流只有输出流无输入流,PrintWriter和PrintStream分别针对字符字节
    两个类提供了重载的Print和Println方法用于多种数据类型的输出
    PrintWriter和PrintStream的输出操作不会抛出异常
    PrintWriter和PrintStream有自动flush功能
    ----System.setOut(接收OutputStream类):用于设置系统默认输出流
    十二、Object流
    等同于c#序列化,用直接将Object写入或读出
    transient关键字为不序列化此成员变量
    需要序列化的类必须实现Serializable接口
    主要方法:writeObject(Object); readObject();
作者: 任振铭    时间: 2015-10-2 20:47
你的技术分有点少啊,该抓紧了
作者: chenwt2015    时间: 2015-10-4 12:53
谢谢分享
作者: Synaric    时间: 2015-10-4 13:03
常用的全了
作者: zwl880916    时间: 2015-10-4 13:24
谢谢…楼主分享………
作者: 狮子王    时间: 2015-10-4 20:15
重复了一些.
作者: lilin661760    时间: 2015-10-7 22:51
任振铭 发表于 2015-10-2 20:47
你的技术分有点少啊,该抓紧了

我突然忘了,技术分是怎么增加的了
作者: 任振铭    时间: 2015-10-7 23:09
lilin661760 发表于 2015-10-7 22:51
我突然忘了,技术分是怎么增加的了

用黑马币换
作者: maxwell247    时间: 2015-10-8 00:00
总结的不错。谢谢。
作者: fwqk123    时间: 2015-10-8 10:42
感谢分享 学习了
作者: heshiwei    时间: 2015-10-8 12:19
这么多干什么,完全没有必要,不在于多而在于精,只要记住最常用最好用最高效的就行了,多考虑优化代码,考虑产品的细节,考虑用户的体验,有时间学习更底层、更新的知识。
作者: 如梦丶似幻    时间: 2015-10-8 20:07
感谢楼主分享~~~~~~
作者: silencea    时间: 2015-10-8 22:06
我来给你加加黑马币
作者: didixyy    时间: 2015-10-8 22:48
谢谢分享
作者: it213399    时间: 2015-10-9 00:09
谢谢分享
作者: T-l-H、小生    时间: 2015-10-9 01:23
总结的好详细,我做的笔记就懒得敲那么多。。。。
作者: lkjmnbqwe    时间: 2015-10-9 02:49
这个点要掌握好估计很难




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2