码迷,mamicode.com
首页 > 其他好文 > 详细

IO流

时间:2020-05-24 16:24:14      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:int   close   stream   输出   它的   input   字符型   io流   fir   

 

 

 

一.流的概念:

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

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

二.流的继承体系

在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流

标签:int   close   stream   输出   它的   input   字符型   io流   fir   

原文地址:https://www.cnblogs.com/sty-88/p/12951306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!