在java中,对数据的输入和输出操作以流的方式进行。(注:对文件的操作用io.File类,但不能对文件中的内容进行操作)

一、IO流的分类:

按数据流的方向不同,可以分为输入流和输出流;

按处理数据的单位不同,可以分为字节流和字符流;

按功能不同,可以分为节点流和处理流;

二、J2SDK所提供的所有流类型位于java.io包,都分别继承自以下四种抽象流类型:

注:以上是四个抽象类

java输入输出流是站在程序的角度来说的。

  从文件中读取数据用输入流,向文件中写数据用输出流。

字节流:单位是字节(8Bit),

字符流:单位是字符(16Bit),

  可以一次写入或读取一个汉字,不会像字节流处理时会有乱码。因为java采用的是Unicode编码,一个字符等于2个字节。

节点流:直接就可以操作数据源

处理流:需要套接在节点流上才能操作数据,不能直接操作数据源

   1. 缓冲流,要套接在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。

BufferedReader提供了readLine方法用于读取一行字符串,BufferedWriter提供了newLine用于写入一个行分隔符。

对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush方法将会使内存中的数据立刻写出。

BufferedReader(Reader in);

BufferedOutputStream(OutputStream out);

  2. 转换流,用于字节数据到字符数据之间的转换。

InputStreamReader需要和InputStream套接,OutputStreamWriter需要和OutputStream套接。

转换流在构造时,可以指定其编码集合,例如:

InputStreamReader ipr = new InputStreamReader(System.in,"ISO8859_1");

  3. 数据流,提供了可以存取与机器无关的Java原始数据类型(如:int,long,double等)的方法:

如:readBoolean(); readByte();readChar();writeInt(int i);writeLong(long v) ...

DataInputStrem(InputStream in);

DataOutputStream(OutputStream out);

  4. Print流,只有输出流,提供了重载的print、println方法用于多种数据类型的输出(我们经常用到的System.out.print()其中out字段的类型就是PrintStream):

      print(char c) 、print(double d) 、print(int i) 、

PrintWriter和PrintStream的输出操作不会抛出异常,有自动flush功能。

该流也可以用于写日志。

  5. Object流,直接写入或读取一个Object中所有的内容,包括变量和方法,但是该类必须先序列化,即implements Serializable接口,

如果这个类中某个成员变量不想被序列化,需要用transient关键字修饰。

writeObject(Object obj)

java IO流 内容整理的更多相关文章

  1. Java IO流系统整理

    Java IO流的分类 Java中的流,可以从不同的角度进行分类. 按流向分类: 输入流: 程序可以从中读取数据的流.输出流: 程序能向其中写入数据的流. 按数据传输单位分类: 字节流:以字节(8位二 ...

  2. Java IO流分析整理 .

    Java中的流,可以从不同的角度进行分类. 按照数据流的方向不同可以分为:输入流和输出流. 按照处理数据单位不同可以分为:字节流和字符流. 按照实现功能不同可以分为:节点流和处理流. 输出流: 输入流 ...

  3. java IO流整理

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  4. Java IO流学习

    Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...

  5. Java:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  6. java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  7. Java IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  8. Java IO流题库

    一.    填空题 Java IO流可以分为   节点流   和处理流两大类,其中前者处于IO操作的第一线,所有操作必须通过他们进行. 输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数 ...

  9. java io流 运行错误时,保存异常到文件里面

    java io流 运行错误时,保存异常到文件里面 下面这个实例,运行后,输入数字,为正确,如果输入字符串,则报错,保存错误信息 //运行错误时,保存异常到文件里面 //下面这个实例,运行后,输入数字, ...

随机推荐

  1. #if、#ifdef、#if defined之间的区别(转载)

    转自:http://www.yucoat.com/c_program/difference_if_ifdef_if_defined.html #if的使用说明 #if的后面接的是表达式 #if (MA ...

  2. PowerShell+NetApi 批处理执行程序

    基于CMD 编写批处理程序很反人类,此篇文章介绍利用Power Shell脚本(借鉴明经net版主雪山飞狐的脚本改造而成)处理之前的Bat+scr的过程(https://www.cnblogs.com ...

  3. 浅谈算法——线段树之Lazy标记

    一.前言 前面我们已经知道线段树能够进行单点修改和区间查询操作(基本线段树).那么如果需要修改的是一个区间该怎么办呢?如果是暴力修改到叶子节点,复杂度即为\(O(nlog n)\),显然是十分不优秀的 ...

  4. 应用交付、负载均衡(Load balancing)、高可用、F5

    “应用交付”,实际上就是指应用交付网络(Application Delivery Networking,简称ADN),它利用相应的网络优化/加速设备,确保用户的业务应用能够快速.安全.可靠地交付给内部 ...

  5. 【转】Java中,&&与&,||与|的区别

    转自:http://blog.csdn.net/lishiyuzuji/article/details/8116516 在Java的逻辑运算符中,有这么四类:&&(短路与),& ...

  6. Webform 内置对象 Session对象、Application全局对象,ViewState

    Session 每台电脑访问服务器,都有独立的session,key值都一样,内容不一样. 1.session保存在服务器上. 2.session没有持久性,保存周期就是20分钟. 重点: sessi ...

  7. 轻松搞懂Java中的自旋锁

    前言 在之前的文章<一文彻底搞懂面试中常问的各种“锁”>中介绍了Java中的各种“锁”,可能对于不是很了解这些概念的同学来说会觉得有点绕,所以我决定拆分出来,逐步详细的介绍一下这些锁的来龙 ...

  8. Solr和Spring Data Solr

    一.Solr概述与安装 1.Solr简介 Solr是一个开源搜索平台,用于构建搜索应用程序. 它建立在Lucene(全文搜索引擎)之上. Solr是企业级的,快速的和高度可扩展的.Solr可以和Had ...

  9. iOS定位--CoreLocation框架

    CoreLocation框架的使用 // 首先导入头文件 #import <CoreLocation/CoreLocation.h> CoreLocation框架中所有数据类型的前缀都是C ...

  10. Int 1的实现过程 (一)

    闲话少说,直奔主题,首先OD载入一个程序,然后执行一下单步(调试器会将TF置1) 此时,CPU会在基于当前线程上下文的环境中,进入int 1的中断门,也就是KiTrap01 kd> !idt - ...