(14)2017.8.15-I/O

在程序运行的过程当中, JVM 的内存中必然会存放很多数据,包括基本类型和对象类型。但是当程序结束, JVM 关闭的时候,这些数据必然会随之消失。我们可能希望通过某种

方式,让这些数据能够保存下来,以备在此使用。因此我们会把数据存入文件,或通过网络发送出去,或存入数据库。反之,我们当然也需要用某种方式,把保存的数据重新读回

 JVM。这 些,都涉及到 JVM 与外部进行数据交换。将 JVM 中的数据写出去,我们称为数据的输出。反之,将数据读入 JVM,我们称之为数据的输入。因此, Java 中解决这部

分问题的 API 被称为 I/O。( I 是英语 Input 的首字母,表示输入, O 是英语 Output 的首字母,表示输出) 。

首先介绍一下 Java 中的 File 类。这个类在 java.io 包中,对于一个 File 对象来说,它能够代表硬盘上的一个文件或者文件夹。在这句描述中,有两个要点值得注意: 

1、 File 对象不仅能够代表一个文件,还能够代表一个文件夹。 

2、 File 对象是“代表”一个文件或者文件夹。

在创建 File 对象的时候,需要指定文件的路径,指定的时候,可以用绝对路径,也可以用相对路径。 另外,要注意路径分隔符的问题。在 Windows 中,路径分隔符使用的是反斜

杠“ \”,而在 Java 中反斜杠是用来转义的,因此如果要使用反斜杠的话,必须使用“ \\”来表示一个反斜杠。

createNewFile() : 这个方法可以用来创建一个新文件。需要注意的是,如果这个文件在系统中已经存在, createNewFile 方法不会覆盖原有文件。

I/O 分类 
对于 Java 来说, 进行 I/O 操作需要使用“流” 对象。所谓的流,指的是:用来传输数据的对象。例如,在生活中,电线就是一种流,这个对象用来传输电力;水管是一种流,这个

对象是用来传输水;输油管也是流,用来传输石油,等等。 对于 Java 中的流来说,有三种分类的方式:按照流的方向分,按照流的数据单位分,按照流的功能来分。 
   首先,流可以按照方向分类,分为输入流和输出流。

所谓读取文件,指的是从硬盘中的文件里读取数据,然后这些数据就会传入 JVM 中。这个过程,就是数据从虚拟机的外部“进入”JVM 的过程,这就是“输入”。而写文件,就是把 

JVM 中的数据保存到文件中,是数据从 JVM“输出”到文件中,这就是“输出”。 

其次,流可以按照数据单位分类,分为字节流和字符流。顾名思义,字节流传输的单位是字节,而字符流传输的单位是字符。

最后,流可以按照功能分类,分为节点流和过滤流。什么是节点流呢?这指的是:真正能够完成传输功能的流。而相对的,过滤流并不能完成真正的数据传输,过滤流是用来为

其他流增强功能。

在节点流和过滤流的设计上, I/O 框架中使用了一种设计模式,这种设计模式被称为“装饰模式”。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小五丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值