文档章节

流(IO)

xili80
 xili80
发布于 2017/07/22 17:25
字数 1063
阅读 2
收藏 0

流的概念

流就是程序和设备之间嫁接起来的一根用于数据传输的管道,这个管道上有很多按钮,不同的按钮上有不同的功能。      这根管道就是流。

节点流:   也叫作原始流。     处理流: 也叫作包裹流。

四大基本抽象流

   InputStream和OutputStream 读写数据的单位是一个字节。

   Reader和Writer读写数据的单位是一个字符。

  Java中一个字符占两个字节,  凡是以stream结尾的都是字节流。

InputStream

 

InputStream流中常用的方法

       public   int read()    throw  IOException

              读取一个字节并以整数的形式返回。

              如果读取到输入流的末尾则返回-1。

       public int read  (byte[] b)  throw IOException

              从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。以整数的形式返回实际读取的字节数。

              如果b的长度为0, 则不读取任何字节并返回0; 如果流位于文件末尾而没有可用的字节,则返回-1。

        eg:     FileInputStream   fs   = new  FileInputStream(:"d:\\ share\\xuexi.txt"); 

                  len = fis.read(buf);   //   从fis流所关联的d:\\share\\xuexi.txt 文件中读取数据,并将读取出来的数据写入buf数组中,返回值是实际写入buf数组的字节个数,如果读到文件的结尾则返回-1。 

        public   int  read (byte[] b,  int  off,   int len)   throws  IOException             

                 从输入流中最多读取len个字节的数据并存入byte数组中。

                 b表示读取的数据要存入的数组的名字  。

                 off 表示第一个读取的数据要存入的位置,是下标。

                  len表示最多能读取的字节数。

                将输入流所关联到的设备中读取的第一个字节存储在元素b[off]中,下一个字节存储到到b[off+1]中,以此类推。读取的字节数最多等于 len。

                尝试读取len个字节,但读取的字节也可能小于该值,以整数的形式返回实际读取的字节数。

                 如果读到了文件的末尾,则返回-1。

        void  close()    throws   IOException

                 关闭此输入流并且释放与该流关联的所有系统资源。

        long  skip(long n)   throws  IOException 

                跳过和丢弃此输入流中数据的n个字节  (这个很少用)


OutputStream 

     

 

Reader

 

Writer

 

缓冲流

         缓冲流概述:  缓冲流就是带有缓冲区的输入输出流。

         缓冲流可以显著的减少我们对IO访问次数,保护我们的硬盘。

         缓冲流本身就是处理流,缓冲流必须得依附于节点流。

 

转换流

OutputStreamWriter 流是把OutputStream 流转化成Writer 的流

InputStreamReader 流是把 InputStream 转化成 Reader 

OutputStreamWriter  和 InputStreamReader 流都是处理流(包裹在节点流之上的流)

数据流

DataOutputStream 是处理流 ,必须依附于OutputStream.

 

print流

      PrintStream在OutputStream基础之上提供了增强的功能。既可以方便的输入各种类型的数据(不仅限于byte型)的格式化表示。

     PrintStream 重载了Print和Println方法,用于各种不同类型数据的格式化输出。

     格式化输出指的是将一个数据用其字符串格式输出。

     DataOutputStream 中的writeXXX(data) 方法是把data咋内存中的二进制数据写入文件。

    PrintStream中的 Println(data) 写出的是该数据格式化后的字符串。

 

object流(对象的序列化)

       对象的序列化指的是:把一个Object对象直接转化成字节流,然后把这个字节流直接写入本地硬盘或者网络中。

       如果想要把某个对象序列化,就必须实现Serializable接口。

       Serializable接口中并没有任何的方法,该接口被称为标记接口,如果一个类实现了Serializable 接口,潜在的含义就是告诉编译器这个类是允许被序列化的。

        在Java中  transient 修饰的成员变量在对象序列化时不被序列化。

            eg: transient    public int = 4;   //   表示 sscore 成员不能被序列化,所谓不能被序列化就是指:该成员调用ObjectOutputStream 的 writeObject() 时不会被保存,调用 ObjectInputStream的readObject()方法时不会被读取。

            

总结 

               

 

 

 

      

 

© 著作权归作者所有

共有 人打赏支持
上一篇: 网络编程
下一篇: 容器
xili80
粉丝 0
博文 14
码字总数 74390
作品 0
郑州
私信 提问
Java基础笔记21

21.01_IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出. 2.FileR...

dreamkong
2017/12/11
0
0
Java IO 系列(01)-Java IO概述

引言 趁着有时间,看了下JDK1.7 API 对Java.lang.io包下经常用到的Java IO处理类做了一些总结性的东西,希望能对Java开发者有点用。 2.Java IO概述 所谓IO,也就是Input与Output的缩写。在j...

kukudeku
2016/09/23
45
0
Java基础笔记22

22.01_IO流(序列流) 1.什么是序列流 序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推. 2.使用方式 整合两个...

dreamkong
2017/12/12
0
0
java IO流

IO(Input Output)流 IO流用来处理设备之间的数据传输,对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中。 完整IO流结构图如下: IO流分类 1. 处理的数据单位不同: (1)字符流 ...

iborder
2016/09/05
38
0
java基础io流——配角也风流(不求甚解)

本章简单介绍几个常见的io流派生。 1:数据操作流(操作基本类型数据的流)(理解) 代码示例: 2:内存操作流(理解) 用于处理临时存储信息的,程序结束,数据就从内存中消失。 代码示例: 注:查看...

潇潇漓燃
2018/05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

嵌入式应用选择合适的微控制器

准备所需硬件接口列表 使用微控制器的基本硬件框图,准备一份微控制器需要支持的所有外设接口的列表。微控制器中有两种常见的接口类型需要列出。第一种是通信接口,这些是外围设备,如USB,S...

linuxCool
9分钟前
1
0
Group by使用

概述 GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类似Excel里面的透视表。 GROUP BY必须得配合...

小橙子的曼曼
20分钟前
1
0
机械臂写中文

Make Me a Hanzi https://www.skishore.me/makemeahanzi/ 使用uArm Swift Pro机械臂写中文-毛笔字 https://github.com/makelove/Robot_Arm_Write_Chinese...

itfanr
32分钟前
0
0
OSChina 周三乱弹 —— 孤独到都和病毒发生了感情了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# 逃跑计划《一万次悲伤 (Live)》 《一万次悲伤 (Live)》- 逃跑计划 手机党少年们想听歌,请使劲儿戳(这里) 现在...

小小编辑
今天
979
13
test

//// main.c// Test//// Created by 吕颖 on 2019/1/16.// Copyright © 2019年 carmen. All rights reserved.//#include <stdio.h>#include <stdlib.h>#include <t......

carmen-ly
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部