IO输入与输出

来源:互联网 发布:地瓜网络嗅探器免费版 编辑:程序博客网 时间:2024/05/22 08:14
 

1.file类的常用方法

delete()删除文件或目录。

canRead()测试文件是否可读。

canWrite()测试文件是否可写。

exists()测试文件或目录是否存在。

isDirectory测试是否是目录。

createNewFile创建一个空文件。

isFile测试是否为文件。

2.Reader与Write类

用于简化字符串中输入输出的编程,是所有字符类的抽象基类,用于读写文本数据

二进制文件和文本文件的区别:文本文件是二进制文件的特例,文本文件之外的文件为二进制文件

在java中,目录被当作一种特殊的文件使用,list方法可以返回目录中的所有子目录文件名

在Unix下的路径分隔符为/,Dos下的为/。

IO输入与输出:流是字节数组的抽象概念。

文件是数据的静态存储形式,而流是指数据传输时的形态。

Java的流类分为两大类节点流类和过滤流类(又叫处理流类)。

3.有了垃圾回收器,为什么还要调用close?

计算机操作系统所产生的东西叫资源。程序中的对象也可以来描述计算机操作系统所产生的东西,而流就是操作系统所产生的资源。当程序创建了一个IO流对象的同时,也会产生一个流的东西。此时计算机内存中其实产生了两个事物:一个是java程序的内实例对象,一个是系统本身所产生的某种资源。而垃圾回收器只能处理程序中的内实例对象。不处理系统所产生的资源,所以程序需要调用流对象自己产生的close方法去释放这个对象自己所表示的流资源。

在java程序中可以用process类的实例对象来表示子进程,子进程的标准输入和输出不再连接到键盘和显示器,而是以管道流的形式连接到父进程的一个输出流和输入流对象上。

4.RandomAccessFile:

该类支持"随机访问"方式!。实际应用(断点续传下载,多线程下载)! 该类在随机读写等长记录文件有优势! 该类只能操作文件,不能访问其他IO设备!

构造方法分只读与读写!

skipBytes(n)跳过并丢弃n个字节,相对指针!    seek(pos)设置文件指针位置,绝对位置!

读取int类型时应用writeInt()方法,否则当读出来的数值大于一个字节时只会读出多出的字节!

当中文与英文混淆时,不应该用字节流操作,可用字符读写操作,用字符串来接收数据!

5.字节流与字符流的转换:

InputStreamReader和OutputStreamWriter,是用于将字节流转换成字符流来读写的两个类,InputStreamReader可以将一个字节流中的字节解码成字符后读取,OutputStreamWriter是将字节输出流转换成字符输出流。mark(readlimit)方法标记,向后读readimit! reset()方法与mark方法组合使用,可返回到标记处!

java中的标准输入和输出分别是System.in和System.out来代表,默认情况下他们分别代表键盘和显示器。当程序通过System.in来获取输入时,实际上是从键盘读取输入;当程序通过System.out来输出时,程序总是输出到屏幕。

6.objectinputstream与objectoutputstream类

用于从底层输入流中读取对象类型的数据和将对象类型的数据写入到底层输出流。其读写的对象必须实现了Serializable接口(序列化)。对象中的transient和static类型的成员变量不会被读取和写入。

flush()方法当应用缓冲区时才使用,而使用缓冲区时的close()方法会自动flush()!

7.管道输入输出流:

PipedInputStream和PipedInputStream可以实现程序内部的线程间的通讯和不同程序间的通讯。

管道输入输出流提供了两种连接的方法:

第一种方法是在构造方法中给出对应的管道流,在创建对象时进行链接。第二种是利用管道提供的connection方法进行连接。

8.心得体会:java的输入输出IO包视频学习中,整理复习了一下IO包中常用的一些类和方法,掌握了一些新概念,对于字符编码的转换问题还处于模糊状态,对各个流的用法仍然不熟悉,对于各种流之间的转换也不太了解。

原创粉丝点击