File的应用

[color=olive][/color][align=center][/align] 文件File类:File类存在于I/O包中
-获取常规文件信息
-目录操作
File类用作用户机器上一个文件或目录的引用。这并不仅限于已经存在的文件或目录。创建新文件时也会使用File类。可以将File类实例认为是一个文件位置的引用,而不是具体文件内容的引用。

I/O流:
为进行数据的输入/输出操作
Stream是从起源到接收的有序数据
Java.io包中定义了多个流类型来实现输入/输出功能
两种基本流:输入流和输出流
-输入流:只能从中读取字节数据,而不能向其写出数据
-输出流:只能向其写入字节数据,而不能从中读取数据按流所处理的数据类型划分,可分为:
-字节流:用于处理字节数据
-字符流:用于处理Unicode字符数据
节点流:
可以从向一个特定IO设备读/写数据的流,称为节点流,节点流也被称为低级流。
处理流:
实现对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读/写功能的流,称为处理流。

InputStream/OutputStream:
InputStream是所有表示位输入流的类之父类,它是一个抽象类,继承它的子类要重新定义其中所定义的抽象方法。InputStream是从装置来源地读取数据的抽象表示,例如System中的标准输入流in对象就是一个InputStream类型的实例。在Java程序开始之后,in流对象就会开启,目的是从标准输入装置中读取数据,这个装置通常是键盘或是用户定义的输入装置。
OutputStream是所有表示位输出流的类之父类,它是一个抽象类。子类要重新定义其中所定义的抽象方法,OutputStream是用于将数据写入目的地的抽象表示。例如System中的标准输出流对象out其类型是java.io.PrintStream,这个类是OutputStream的子类(java.io.FilterOutputStream继承OutputStream, PrintStream再继承FilterOutputStream)。在程序开始之后,out流对象就会开启,可以通过out来将数据写至目的地装置,这个装置通常是屏幕显示或用户定义的输出装置。

Reader/Writer
处理的是字符类型的数据,它处理流的方式是以字符为单位,支持Unicode标准字符集。不能生成这两个类的实例,只能通过使用由它们派生出来的子类对象来处理字符流。

特殊的文件流:
RandomAccessFile,它是一种特殊的文件流,可以用它在文件的任何地方查找或者插入数据,它同时实现了DataInput和DataOutput接口,所以可以用它来读/写文件。

利用流压缩文件:
-Zip:广泛应用于Windows平台的一种压缩方式
-Gzip:主要在Unix/Linux/BSD等类Unix平台上使用的一种文件压缩方式
-Jar:Java Archives,主要用于JAVA类文件的打包和压缩

对象系列化:
目标:将对象保存到磁盘或者在网络中传递。
通过对象系列化,可以将对象保存在磁盘或网络中。
为了实现对象系列化,对应的类必须实现Serializable接口(也可以实现其子接口Externalizable接口),该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

以下序列化机制的解决方案:
1.保存到磁盘的所有对象都获得一个序列号(1, 2, 3等等)
2.当要保存一个对象时,先检查该对象是否被保存了。
3.如果以前保存过,只需写入"与已经保存的具有序列号x的对象相同"的标记,否则,保存该对象 。
通过以上的步骤序列化机制解决了对象引用的问题!

注:静态属性不能够被序列化!!!!!如果属性有关键字transient修饰,该属性也不参加序列化!!!!!

GUI:图形用户界面
AWT:抽象窗口工具
java.awt包提供了基本的java程序GUI设计工具

Container:
容器实际上是Component的子类,因此容器类对象本身也是一个组件,它具有其他容器所有的性质。
容器类对象可使用方法add()添加组件
两种主要容器类别:
-Window
-Panel

你可能感兴趣的:(windows,linux,unix,网络应用)