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协议的 ...
随机推荐
- POJ-2175 Evacuation Plan 最小费用流、负环判定
题意:给定一个最小费用流的模型,根据给定的数据判定是否为最优解,如果不为最优解则给出一个比给定更优的解即可.不需要得出最优解. 解法:由给定的数据能够得出一个残图,且这个图满足了最大流的性质,判定一个 ...
- iOS - CoreMotion
前言 NS_CLASS_AVAILABLE(NA,4_0) @interface CMMotionManager : NSObject @available(iOS 4.0, *) public cl ...
- PHP 用文件流方式展示图片
public function index(){ $img = 'http://img.pf.loc/static/images/2016/05/24/21d98edf98bd6c30afe1c838 ...
- 上传本地文件到HDFS
源代码: import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hado ...
- Windows不重启就使环境变量修改生效
以修改环境变量“PATH”为例,修改完成后,进入DOS命令提示符,输入:set PATH=C: ,关闭DOS窗口.再次打开DOS窗口,输入:echo %PATH% ,可以发现“我的电脑”->“属 ...
- 获取AVCaptureSession samplebuffer 一像素的 rgb值
获取AVCaptureSession samplebuffer 一像素的 rgb值 typedef unsigned char byte; typedef struct RGBPixel{ byte ...
- VC++编译libpng
目录 第1章简介 1 第2章 Visual C++6.0 2 2.1 打开项目 2 2.2 编译宏 3 2.2.1 小结 5 第3章 Visual C++2010 ...
- IOC Container(服务容器)的工作机制
IOC Container 是laravel的一个核心内容,有了IOC Container在Laravel的强大表现,我们可以在Laravel中实现很大程度的代码维护性.(文档我是看的懵逼懵逼的(*^ ...
- 设置pictureBox的边框颜色
private void pictureBox2_Paint(object sender, PaintEventArgs e) { PictureBox p = (PictureBox)sender; ...
- 2.2 利用项目模板创建ASP.NET MVC项目
1.启动VS2012,点击“文件|新建|项目”. 2.在新建项目的窗口中,选择ASP.NET MVC 4应用程序. 3.在新ASP.NET MVC 4项目窗口中的“选择模板”列表中选择“基本”模板,在 ...