zoukankan      html  css  js  c++  java
  • AJPFX总结I/O流操作(一)

    在软件开发中,数据流和数据库操作占据了一个很重要的位置,所以,熟悉操作数据流和数据库,对于每一个开发者来说都是很重要的,今天就来总结一下I/O,数据库操作

    一:从数据流开始

    首先先有一个结构图看一下整个数据流中的API结构和对象继承关系信息:


    其他常用与流有关的对象:


    首先从字符流开始

    1、字符流的由来:

        因为文件编码的不同,而有了对字符进行高效操作的字符流对象。

        原理:其实就是基于字节流读取字节时,去查了指定的码表。

    字节流和字符流的区别:

    1,字节流读取的时候,读到一个字节就返回一个字节。字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,UTF-8码表中是3个字节)时。先去查指定的编码表,将查到的字符返回。

    2,字节流可以处理所有类型数据,如图片,mp3,avi。而字符流只能处理字符数据。

    结论:只要是处理纯文本数据,就要优先考虑使用字符流。除此之外都用

    节流。

    基本的读写操作方式:

    因为数据通常都以文件形式存在。

    所以就要找到IO体系中可以用于操作文件的流对象。

    通过名称可以更容易获取该对象。

    因为IO体系中的子类名后缀绝大部分是父类名称。而前缀都是体现子类功能的名字。

    Reader

       |--InputStreamReader

                |--FileReader:专门用于处理文件的字符读取流对象。

    Writer

        |--OutputStreamWriter

                      |--FileWriter:专门用于处理文件的字符写入流对象。

    Reader中的常见的方法:

    1,int read():读取一个字符。返回的是读到的那个字符。如果读到流的末尾,返回-1.

    2,int read(char[]):将读到的字符存入指定的数组中,返回的是读到的字符个数,也就是往数组里装的元素的个数。如果读到流的末尾,返回-1.

    3,close():读取字符其实用的是window系统的功能,就希望使用完毕后,进行资源的释放

    Writer中的常见的方法:

    1,write(ch): 将一个字符写入到流中。

    2,write(char[]): 将一个字符数组写入到流中。

    3,write(String): 将一个字符串写入到流中。

    4,flush():刷新流,将流中的数据刷新到目的地中,流还存在。

    5,close():关闭资源:在关闭前会先调用flush(),刷新流中的数据去目的地。然流关闭。

  • 相关阅读:
    085 Maximal Rectangle 最大矩形
    084 Largest Rectangle in Histogram 柱状图中最大的矩形
    083 Remove Duplicates from Sorted List 有序链表中删除重复的结点
    082 Remove Duplicates from Sorted List II 有序的链表删除重复的结点 II
    081 Search in Rotated Sorted Array II 搜索旋转排序数组 ||
    080 Remove Duplicates from Sorted Array II 从排序阵列中删除重复 II
    079 Word Search 单词搜索
    078 Subsets 子集
    bzoj2326: [HNOI2011]数学作业
    bzoj2152: 聪聪可可
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10876012.html
Copyright © 2011-2022 走看看