zoukankan      html  css  js  c++  java
  • java_io起步


    layout: post
    title: Java IO流总结
    tags:

    • java io
      categories:
    • JAVA
      description: io体系 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable...

    Java IO流总结

    java 的io系统简单介绍

    io体系 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable

    而且构建出的庞大io类库体系使用了装饰者模式设计

    java的io体系可以分为流式和非流式和其他类

    1. 流式部分――IO的主体部分;
    2. 非流式部分――主要包含一些辅助流式部分的类,如:File类、RandomAccessFile类和FileDescriptor等类;
    3. 其他类--文件读取部分的与安全相关的类,如:SerializablePermission类,以及与本地操作系统相关的文件系统的类,如:FileSystem类和Win32FileSystem类和WinNTFileSystem类

    io 流

    java的流按照输入输出可以分为输入流输出流,按照输入输出内容分为字节流字符流

    有四个抽象类:

    1. 字节流 InputStream OutputStream
    2. 字符流 Reader Writer

    注:为什么会有两种类型呢?Java中字符是以Unicode形式存储的,一个字符占用两个字节,然而InputStream和OutputStream都是以字节形式读取或写出数据的,会将一个字符拆分成两个字节来读写这样会造成乱码(比如读取或者写出中文)

    Java IO流体系中常用的流分类

    粗体部分是节点流,其他就是常用的处理流。

    流分类 使用分类 字节输入流 字节输出流 字符输入流 字符输出流
    抽象基类 InputStream OutputStream Reader Writer
    节点流 访问文件 FileInputStream FileOutStream FileReader FileWriter
    节点流 访问数值 ByteArrayInputStream ByteArrayOutStream CharArrayReader CharArrayWriter
    节点流 访问管道 PipedInputStream PipedOutStream PipedReader PipedWriter
    节点流 访问字符串 StringReader StringWriter
    处理流 缓冲流 BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter
    处理流 转换流 InputStreamReader OutputStreamWriter
    处理流 对象流 ObjectInputStream ObjectOutputStream
    处理流 抽象基类(过滤) FilterInputStream FilterOutputStream FilterReader FilterWriter
    流分类 使用分类 字节输入流 字节输出流 字符输入流 字符输出流
    处理流 打印流 PrintStream PrintWriter
    处理流 推回输入流 PushbackInputStream PushbackReader
    处理流 特殊流 DataInputStream DataOutputStream

    常用类的特性

    1. FileOutStream FileWriter 在自定true 来追加内容

    2. StringWriter的 void write(String str)方法 写入一个字符串。

    3. BufferedReader的 String readLine() 方法 读取一个文本行。

    4. InputStreamReader **InputStreamReader(InputStream in,String charsetName) **创建使用指定字符集的 InputStreamReader 可以用来处理中文编码问题

    5. OutputStreamWriter OutputStreamWriter(OutputStream out,String charsetName)创建使用指定字符集的 OutputStreamWriter 可以用来处理中文编码问题

    6. InputStream OutputStream 字节输入输出流常用的读取方法 如下:

      byte[] in = new byte[1024];
      int len = -1;
      while((len = InputStream.read(in))>0){//将读出的字节存放在in字节数组中 并返回读取长度 如果已到达
      		//System.out.println(new String(in,0,len));			//文件末尾,则返回 -1。
          OutputStream.write(in,0,len);//写入一个字节数组in 从位置0开始读到len
          }
      
    7. Reader Writer 字符输入输出流常用的读取方法 将字节的读取方法中的字节数组改成字符数组就可以了

    8. byte[] in = new byte[1024];
      int len = inputStream.read(in);
      String message = new String(in,0,len);
      
  • 相关阅读:
    ArcGIS Engine 中的多线程使用
    Arcgis栅格时序地图制作---时间轴动态展示多期影像
    R树空间索引
    R-Tree空间索引算法的研究历程和最新进展分析
    学生表、课程表、 成绩表 、教师表sql练习
    Mysql建表出现1005错误
    MySQL数据类型详解
    数据库操作语句类型(DQL、DML、DDL、DCL)简介
    Spring MVC标签<mvc: annotation-driven />小结 原
    EasyUI Menu 菜单
  • 原文地址:https://www.cnblogs.com/Tamako/p/11485011.html
Copyright © 2011-2022 走看看