IO流

Posted sty-88

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO流相关的知识,希望对你有一定的参考价值。

 

 

 

一.流的概念:

流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。它的特性是进行数据传输;

例如从水源地长江把水导入自来水厂,然后又从自来水厂把水送到各家各户。从长江到自来水厂之间的管道我们可以称之为输入流,从自来水厂把水送到各家各户的管道我们称之为输出流,我们大概可以这么理解。

二.流的继承体系

在java中,为了对不同来源和性质的流对象调用统一的方法,java中的流首先定义了顶层输入/输出流的接口或抽象类,这样不同性质具体的流对象就会有统一的调用方法以便使用,在使用流对象时,尽量的按照在具体流所实现的接口(抽象类)中定义的方法使用。

三.流的分类

流按照流向数据流向可以分为输入流和输出流。

流按照处理数据类型的单位不同可以分为字节流和字符流。

四.字节流和字符流

字节流:InputStream和OutputStream是java中可以按照最小字节单位读取的流,即每次读写一个字节,字节流是直接连接到输入源的流。

字符流:是以字符为单位进行数据处理的IO流。本质其实就是基于字节流读取时,去查找指定的码表。

字节流与字符流之间的区别:

1.读写单位不同:字节流式以字节(8位2进制)为单位,字符流是以字符为单位,根据码表映射字符,一次可能读多个字节。

2.处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。

3.一次读入或读出是8位二进制。

4.字符流:一次读入或读出是16位二进制。

 

 

常用例子:

  1. public class firstIO {
  2.  
    //程序的主方法
  3.  
    public static void main(String [] args) throws IOException{
  4.  
    int i=0;
  5.  
    FileInputStream in=null;
  6.  
    try {
  7.  
    in=new FileInputStream("C:\Users\15080\Desktop\aaaa.txt");//从文件外读数据
  8.  
    } catch (FileNotFoundException e) {
  9.  
    // TODO: handle exception
  10.  
    System.out.println("找不到文件位置");
  11.  
    System.exit(-1);
  12.  
    }
  13.  
    try {
  14.  
    int num=0;//用于字节个数的计数
  15.  
    while((i=in.read())!=-1){
  16.  
    System.out.println((char)i);//将得到的ASCII码值转换成字符型
  17.  
    num++;
  18.  
    }
  19.  
    in.close();
  20.  
    System.out.println("传输字节个数:"+num);
  21.  
    } catch (Exception e) {
  22.  
    // TODO: handle exception
  23.  
    System.out.println("读取文件错误");
  24.  
    }
  25.  
     
  26.  
    }
  27.  

以上是关于IO流的主要内容,如果未能解决你的问题,请参考以下文章

IO流之IO流综述

IO异常--缓冲流--转换流--序列化流( IO流2 )

IO流(序列流)

java中的io流都有哪些

java IO流 IO流概述

IO流