1、I/O操作指的是输入和输出流的操作。相对内存而言,当我们从数据源中将数据读取到内存中,就是输入流,也叫读取流。当我们将内存中处理好的数据写入数据源,就是输出流,也叫写入流。

2、流按照内容分类:字节流、字符流、对象流。

其实真正的流只有一种:字节流。数据的传输在底层都是以二进制方式传输,所以无论哪种流,都是字节流。字符流和对象流是在字节流基础上做了一层封装,以方便对字符数据和对象数据进行操作。

3、所有字节流的父类:InputStream和OutputStream。

所有字符流的父类:Reader和Writer

4、流操作的步骤:

建立流:建立内存和数据源之间传输数据的通道;

操作流:操作传输的数据;

关闭流:关闭内存和数据源之间的通道,释放资源。

5、当操作文件流时,如果文件不存在,读取流会抛出FileNotFoundException,写入流会创建新文件,但前提是该文件所在目录必须存在。如果目录不存在,同样会抛出FileNotFoundException。

6、流使用完毕后,必须关闭。如果不关闭,浪费内存资源,另外,写入流有可能写不进数据。

7、File 文件类:

  • getName(),获得文件名;
  • getParent(),获得文件目录;
  • getAbsolutePath(),获得文件绝对路径;
  • exists(),判断文件是否存在;
  • isFile(),判断对象是否是文件;
  • isDirectory(),判断对象是否是目录;
  • listFiles(),获得一个目录中所有的文件列表,包含文件和目录,但不包括子目录中的内容;
  • delete(),删除文件或目录(删除目录时),必须保证目录为空目录。
  • mkdir(),创建指定路径的目录

8、递归:在一个方法中调用同一个方法。

9、对象序列化:当需要对对象进行数据传输时,由于对象中的数据比较庞大,所以在传输对象前需要将对象打散成字节序列,以方便传输。这个过程,称为对象序列化。到达目的地后,又需要将字节序列还原成对象,这个过程叫反序列化。

java 面向对象编程--第17章 I/O系统的更多相关文章

  1. java面向对象编程— —第七章 继承

    7.1继承的起源 继承(Inheritance),即在面向对象编程中,可以通过扩展(extends)一个已有的类,并继承该类的属性的行为,来创建一个新的类. 已有的类称为父类(也可以称为基类,超类), ...

  2. java面向对象编程——第四章 类和对象

    OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启 ...

  3. java面向对象编程——第五章 对象的行为

    5.1 方法调用栈 当一个方法被调用时,将导致控制流程跳转到被调用的方法.然后,控制流程执行方法中的语句.当然,被执行的方法可能会调用其它方法,导致控制流程跳转到其它方法.所有的方法调用都维护在一个称 ...

  4. java 面向对象编程-- 第15章 集合框架

    1.  集合特点:元素类型不同.集合长度可变.空间不固定 2.  java中对一些数据结构和算法进行了封装即集合.集合也是一种对象,用于存储.检索.操作和传输对象. 3.  JCF(Java Coll ...

  5. java 面向对象编程-- 第十三章 反射、类加载与垃圾回收

    1.狭义JavaBean规范 Javabean必须包含一个无参数的public构造方法,方便通过反射的方式产生对象. 属性必须都是私有的. Javabean必须包含符合命名规范的get和set方法,以 ...

  6. java面向对象编程——第六章 数组

    1.数组概述 数组是存储在一个连续的内存块中的元素集合.数组中的每个元素必须是相同的数据类型,并且通过索引进行区分.数组中的第一个元素的索引为0. 在java中,创建数组有两个步骤: 声明一个对数组的 ...

  7. java面向对象编程—— 第三章 程序流程控制

    3.1流程控制 三种基本技术可以改变程序的控制流程: ①   调用方法:调用方法将导致控制流程离开当前方法,转移到被调用的方法: ②   选择:java中有两种做出选择的机制:if/else语句和sw ...

  8. java 面向对象编程 第20章 XML技术解析

    1.  XML:extended Markup Language  可扩展标记语言,利用标签和子标签方式描述数据. 2.  声明<?xml version=”1.0”?>版本号 注释< ...

  9. java 面向对象编程 第18章——网络编程

    1.  TCP/IP协议模型 应用层:应用程序: 传输层:将数据套接端口,提供端到端的通信服务: 网络互联层:负责数据包装.寻址和路由,同时还包含网间控制报文协议: 网络接口层:提供TCP/IP协议的 ...

随机推荐

  1. 一切都是对象 Thinking in Java 第二章

    2.1 用引用操作对象 1.对象和引用联系起来,就可以通过引用来操作对象: 2.引用亦可单独存在,即没有和任何对象联系起来:对没有和对象联系起来的引用操作,会报错: 2.2 必须由你创建所有对象 1. ...

  2. linux学习笔记2-命令总结4

    帮助命令 help - 帮助命令 man - 获取帮助信息 用户管理命令 useradd - 添加新用户 passwd - 设置用户密码 who - 显示所有用户 w - 查看更详细的用户信息 use ...

  3. Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中

    这个题目用传统的File,InputStream可以做,但是如果用Files,Path类做,虽然思路上会困难一些,但是代码简洁了很多,以下是代码: import java.io.IOException ...

  4. Android应用程序构成

    一个Android应用程序一般是由以下4个组件构成的: 活动(Activity) 意图(Intent) 服务(Service) 内容提供器(Content Provider) 这4个组件是构成andr ...

  5. jackson反序列化时忽略不需要的字段(zhuan)

    http://www.cnblogs.com/davidwang456/p/5434071.html ********************************************* 有时候 ...

  6. [转载]WEB缓存技术概述

    [原文地址]http://www.hbjjrb.com/Jishu/ASP/201110/319372.html 引言 WWW是互联网上最受欢迎的应用之一,其快速增长造成网络拥塞和服务器超载,导致客户 ...

  7. Hbase之必要时取出请求的行(列族所有数据)

    import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CellScanner; import org. ...

  8. PHP 递归的密码

    http://www.cnsecer.com/4146.html 说实话 真的很炫 好像还是不好理解啊

  9. Vcenter 添加域管理员权限

    授予相应管理权限

  10. java 集合(Set2)

    TreeSet: 1.向TreeSet添加元素时 如果元素具有自然特性,那么就按照元素的自然顺序的特点进行排序储存. 如果不具备,就要实现Compareable接口中的compareTo() 方法. ...