java 面向对象编程--第17章 I/O系统
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系统的更多相关文章
- java面向对象编程— —第七章 继承
7.1继承的起源 继承(Inheritance),即在面向对象编程中,可以通过扩展(extends)一个已有的类,并继承该类的属性的行为,来创建一个新的类. 已有的类称为父类(也可以称为基类,超类), ...
- java面向对象编程——第四章 类和对象
OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启 ...
- java面向对象编程——第五章 对象的行为
5.1 方法调用栈 当一个方法被调用时,将导致控制流程跳转到被调用的方法.然后,控制流程执行方法中的语句.当然,被执行的方法可能会调用其它方法,导致控制流程跳转到其它方法.所有的方法调用都维护在一个称 ...
- java 面向对象编程-- 第15章 集合框架
1. 集合特点:元素类型不同.集合长度可变.空间不固定 2. java中对一些数据结构和算法进行了封装即集合.集合也是一种对象,用于存储.检索.操作和传输对象. 3. JCF(Java Coll ...
- java 面向对象编程-- 第十三章 反射、类加载与垃圾回收
1.狭义JavaBean规范 Javabean必须包含一个无参数的public构造方法,方便通过反射的方式产生对象. 属性必须都是私有的. Javabean必须包含符合命名规范的get和set方法,以 ...
- java面向对象编程——第六章 数组
1.数组概述 数组是存储在一个连续的内存块中的元素集合.数组中的每个元素必须是相同的数据类型,并且通过索引进行区分.数组中的第一个元素的索引为0. 在java中,创建数组有两个步骤: 声明一个对数组的 ...
- java面向对象编程—— 第三章 程序流程控制
3.1流程控制 三种基本技术可以改变程序的控制流程: ① 调用方法:调用方法将导致控制流程离开当前方法,转移到被调用的方法: ② 选择:java中有两种做出选择的机制:if/else语句和sw ...
- java 面向对象编程 第20章 XML技术解析
1. XML:extended Markup Language 可扩展标记语言,利用标签和子标签方式描述数据. 2. 声明<?xml version=”1.0”?>版本号 注释< ...
- java 面向对象编程 第18章——网络编程
1. TCP/IP协议模型 应用层:应用程序: 传输层:将数据套接端口,提供端到端的通信服务: 网络互联层:负责数据包装.寻址和路由,同时还包含网间控制报文协议: 网络接口层:提供TCP/IP协议的 ...
随机推荐
- iOS - OC NSSize 尺寸
前言 结构体,这个结构体用来表示事物的宽度和高度. typedef CGSize NSSize; struct CGSize { CGFloat width; CGFloat height; }; t ...
- 卷积FFT、NTT、FWT
先简短几句话说说FFT.... 多项式可用系数和点值表示,n个点可确定一个次数小于n的多项式. 多项式乘积为 f(x)*g(x),显然若已知f(x), g(x)的点值,O(n)可求得多项式乘积的点值. ...
- CodeBlocks使用技巧
快键键 注释:选中后Shfit + C 取消注释:选中后Shfit + X 查找替换:Ctrl + R Build(Ctrl + F9) Run (Ctrl + F10) Build + Run (F ...
- ios 开发之 Xcode6 No valid signing identities (i.e. certificate and private key pair) matching...
之前的项目用证书真机测试过,我想再无证书Build,出现下面的报错提示! 下面的team我无法改成None!一点击None选的还是Unhonw name(JPGE28K3W9)这个是报错的关键 最后由 ...
- sqlserver 2008 服务器拒绝连接;拒绝访问指定的数据库
sqlserver配置管理器----sqlserver网络配置 --- 启用 named pipes OK 由于之前的程序是SQL2000开发的,迁移到SQL20008出了这个问题. 二 和主题没有什 ...
- 转:21副GIF动图让你了解各种数学概念
21副GIF动图让你了解各种数学概念
- Spring MVC 之请求处理方法可接收参数(三)
请求处理方法可接收参数 今天学习了前三个方法. 1.作用域对象2.单个表单提交数据3.表单数据封装的Bean对象 首先创建一个实体对象. package com.cy.springannotation ...
- C# Socket编程(4)初识Socket和数据流
经过前面基础知识作为背景,现在对Socket编程进行进一步的学习.在System.Net.Socket命名空间提供了Socket类,利用该类我们可以直接编写Socket的客户端和服务的的程序.但是直接 ...
- jquery获得option的值和对option进行操作 作者: 字体:[增加 减小] 类型:转载 时间:2013-12-13 我要评论
jquery获得option的值和对option进行操作 作者: 字体:[增加 减小] 类型:转载 时间:2013-12-13我要评论 本文为大家介绍下jquery获得option的值和对option ...
- One Class SVM, SVDD(Support Vector Domain Description)(转)
今天给大家介绍一下one class classification以及用SVDD(support vector domain description)做one class classification ...