黑马程序_IO流(流的操作基本规律)

来源:互联网 发布:手机预装软件 编辑:程序博客网 时间:2024/06/03 17:50

———– android培训、 java培训

、java学习型技术博客、期待与您交流! ——-

流的操作规律:
之所以要弄清楚这个规律,是因为流对象太多,开发时不知道用哪个对象合适

想要知道开发时用到哪些对象。只要通过四个明确即可

 1.明确源和目的(汇)    源:InputStream            Reader    目的:OutputStream     Writer2.明确数据是否是纯文本数据。        源:是纯文本:Reader            否:InputStream        目的:是纯文本:Writer                否:OutputStream到这里,就可以明确需求中具体要使用哪个体系3.明确具体的设备。    源设备:                硬盘:File                键盘:System.in                内存:数组                网络:Socket流    目的设备:            硬盘:File            控制台:System.out            内存:数组            网路:Socket流  4.是否需他其他额外功能        1,是否需要高效(缓冲区)        是。就加上buffer
class Demo{    public static void main(String[] args){    /* *  需求1:复制一个文本文件 *              1:明确源和目的 *                      源:InputStream Reader *                      目的:OutputStream Writer *       *              2:是否是纯文本 *                  是 *                  源:Reader *                  目的:Writer *  *              3:明确具体设备。 *              源: *                  硬盘:File *              目的: *                  硬盘:File *       *          FileReader fr=new FileReader("a.txt"); *          FileWriter fw=new FileWriter("b.txt"); *                   *  *      4:需要额外功能吗? *          需要高效 *  BufferReader  bufr=new BufferReader(new FileReader("a.txt")); *  BufferWriter bufw=new BufferWriter(new FileWriter("b.txt")); *  * *//*需求2:读取键盘录入的信息,写入到一个文件中 *  *  1:明确源和目的 *          源:InputStream   Reader *          目的:OutputStream Writer *  *  2:是否是纯文本呢? *          是 *          源:Reader *          目的:Writer *  *  3:明确设备 *          源: *              键盘。System.in *          目的 *              硬盘:File。 *       * InputStream  in=System.in; * FileWriter fw=new FileWriter("b.txt"); * 这样做可以完成,但是麻烦,将读取的字节数据转成字符串,在又字符流操作 *  *  4:需要额外功能 *          需要:转换.   将字节流转成字符流。因为明确源是Reader,这样操作文本数据便捷。 *          所以要将已有的字节流转成字符流, *       *  InputStreamReader isr=new InputStreamReader(System.in); *  FileWriter fw=new FileWriter("b.txt"); *  *   *  还需要功能吗? *      需要:想高效 *  BufferReader  bufr=new BufferReader(new InputStreamReader(System.in)); *  BufferWriter bufw=new BufferWriter(new FileWriter("b.txt")); *  *  * */    }}
class Demo{    public static void main(String[] args){/*需求3:讲一个文本文件显示在控制台上。 *              1:明确源和目的 *                      源:InputStream Reader *                      目的:OutputStream Writer *       *              2:是否是纯文本 *                  是 *                  源:Reader *                  目的:Writer *               *  *              3:明确具体设备 *                  源: *                      硬盘:File *                  目的: *                      控制台:System.out *       *              FileReader fe=new FileReader("a.txt"); *              OutputStream out=System.out;//PrintStream *               *          4:需要额外功能吗? *              需要:转换。 *              FileReader fr=new FileReader("a.txt"); *              OutputStreamWriter osw=new OutputStreamWriter(System.out); *       *  *          需要高效/ *          BufferReader bufr=new BufferReader(new FileReader("a.txt")); *          BufferWriter bufw=new BufferWriter(new OutputStreamWriter(System.out)); *  *  * *//*需求4:读取键盘录入数据,显示在控制台上。 *       *  *          1:明确源和目的 *                      源:InputStream Reader *                      目的:OutputStream Writer *       *              2:是否是纯文本 *                  是 *                  源:Reader *                  目的:Writer *  *  *          3:明确设备 *                  源: *                      键盘:System.in *                  目的 *                      控制台:System.out *  *          InputStream in=System.in; *          OutputStream out=System.out; *  *          4:明确额外功能? *              需要转换。因为都是字节流,但是操作的却是文本数据。 *              所以使用字符流操作起来更为便捷。 *              InputStreamReader isr =new InputStreamReader(System.in); *              OutputStreamWriter osw=new OutputStreamWriter(System.out); *  *      为了将其高效。 *      BufferReader bufr=new BufferedReader(new InputStreamReader(System.in)); *      BufferWriter bufw=new BufferWriter(new OutputStreamWriter(System.out)); *  *                   *  * */    }}
0 0
原创粉丝点击