zoukankan      html  css  js  c++  java
  • I/O(输入/输出)---字节流与字符流

    流:

      分为输入流和输出流,输入/输出是相对计算机内存来说的,数据输入到内存是输入流,数据从内存中输出是输出流。

      流对象构造的时候会和数据源联系起来。

      数据源分为:源数据源和目标数据源。输入流联系的是源数据源,输出流联系的是目标数据源。

      按流向划分:

      输入流:InputStream和Read

      输出流:OutputStream和Write

    输入流和输出流又分为字节流和字符流:

      按处理数据单元划分:

      字节流:InputStream和OutputStream。字节流是8位的通用字节流,基本单位是字节。

            ---子类FileInputStream和FileOutputStream。文件输入/输出流。

      字符流:Read和Write。字符流是16位的Unicode字符流,基本单位是Unicode字符。适合处理字符串和文本。

            ---子类FileReader和FileWrite。文件输入/输出流。

      缓冲流:BufferedReader和BufferedWrite.也是Read和Write的子类。

        缓冲流主要作用:提高输入输出的效率。

        原理;
           1,使用流的read方法从源中读取一批数据存储到缓冲区的数组中。
           2,通过计数器记录住存储的元素个数。
           3,通过数组的角标来获取数组中的元素(从缓冲区中取数据).
           4,指针会不断的自增,当增到数组长度,会归0.计数器会自减,当减到0时,就在从源拿一批数据进缓冲区。

    package cn.itcast.p2.io.filewriter;
    
    import java.io.FileWriter;
    import java.io.IOException;
    

    //字符输出流
    //需求:将一些文字存储到硬盘一个文件中。 public class FileWriterDemo { //平台独立的换行符。 private static final String LINE_SEPARATOR = System.getProperty("line.separator"); public static void main(String[] args) throws IOException { //创建一个可以往文件中写入字符数据的字符输出流对象。 /* * 既然是往一个文件中写入文字数据,那么在创建对象时,就必须明确该文件(用于存储数据的目的地)。 * * 如果文件不存在,则会自动创建。 * 如果文件存在,则会被覆盖。 * * 如果构造函数中加入true,可以实现对文件进行续写! */ FileWriter fw = new FileWriter("demo.txt",true); /* * 调用Writer对象中的write(string)方法,写入数据。 * * 其实数据写入到临时存储缓冲区中。 * */ fw.write("abcde"+LINE_SEPARATOR+"hahaha"); // fw.write("xixi"); /* * 进行刷新,将数据直接写到目的地中。 */ // fw.flush(); /* * 关闭流,关闭资源。在关闭前会先调用flush刷新缓冲中的数据到目的地。 */ fw.close(); // fw.write("haha");// java.io.IOException: Stream closed } }

     未完,待补充。。。

  • 相关阅读:
    算法之路——插入排序篇3:希尔排序
    对enum的探讨
    算法之路——插入排序篇1
    算法之路——快速排序
    算法之路——插入排序篇2
    圆的角度DDA算法初试
    解决omnicppcomplete显示"pattern not found"
    汇编
    直线的dda算法
    equ定义的是符号
  • 原文地址:https://www.cnblogs.com/fifiyong/p/6006014.html
Copyright © 2011-2022 走看看