---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
File类
用来将文件或者文件夹封装成对象,方便对文件和文件夹的属性进行操作。File对象可以作为参数传递给流的构造函数。
这时IO包中一个比较特殊也很重要的类。
流操作的是数据,数据最直观的表现就是文件,文件有自己的路径、名字、时间、大小等等的属性。对于这些很复杂的东西,Java的思想就是封装成对象。
流对象也可以操作文件,但是不能操作文件夹,也不能操作文件的属性。流对象只能操作数据,想要操作文件的属性,就要使用File对象进行操作。
File类常见方法:
1,创建。
booleancreateNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。和输出流不一样,输出流对象一建立创建文件,而且文件已经存在,会覆盖。
booleanmkdir():创建文件夹。
booleanmkdirs():创建多级文件夹。
2,删除。
booleandelete():删除失败返回false。如果文件正在被使用,则删除不了返回falsel。
voiddeleteOnExit();在程序退出时删除指定文件。
3,判断。
booleanexists() :文件是否存在.
isFile():是否是文件
isDirectory();是否是目录
isHidden();是否是隐藏文件
isAbsolute();是否是绝对路径名
4,获取信息。
getName():
getPath():
getParent():
getAbsolutePath()
longlastModified()
longlength()
renameTo()
打印流:字节打印流PrintStream、字符打印流PrintWriter
该留提供了打印方法,可以将各种数据类型的数据都原样打印
PrintStream构造
1.File对象,File
2.字符串路径,String
3.字节输出流,OutputStream
PrintWriter构造
1.File对象,File
2.字符串路径,String
3.字节输出流,OutputStream
4.字符输出流,Writer
PrintWriter更常用
序列流,SequenceInputStream,功能型的流对象
对多个流进行合并,其他输入流的逻辑串联,从输入流的有序集合开始,并从第一个输入流开始读取,直到文件的末尾,接着从第二个输入流开始,以此类推,直到到达包含的最后一个输入流的文件末尾。
SequenceInputStream(InputStream in1,InputStream in2)
操作对象,ObjectInputStream,ObjectOutputStream
直接操作对象的流。
对象序列化,实现Serializable接口,这个接口没有方法,没有方法的接口称之为标记接口
序列化与反序列化
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
RandomAccessFile
随机访问文件,自身具备读写的方法
通过skipBytes(int x),seek(int x)来达到随机访问
管道流PipedInputStream,PipedOutputStream
输入流和输出流可以进行连接,结合线程使用
一般我们用输入流和输出流是没有关系的,中间需要一个中转站,如定义一个数组等
管道流可以直接将输入流和输出流接起来,管道输入流应该连接到管道输出流,管道输入流提供要写入管道输出流的所有数据字节。通常,数据由某个线程从 PipedInputStream 对象读取,并由其他线程将其写入到相应的 PipedOutputStream。不建议对这两个对象尝试使用单个线程,因为这样可能死锁线程。管道输入流包含一个缓冲区,可在缓冲区限定的范围内将读操作和写操作分离开。如果向连接管道输出流提供数据字节的线程不再存在,则认为该管道已损坏。
操作基本数据类型,DataInputStream,DataOutputStream
操作字节数组,ByteArrayInputStream,ByteArrayOutputStream
操作字符数组,CharArrayReader,CharArrayWriter
操作字符串,StringReader,StringWriter
转换流,InputStreamReader,OutPutStreamWriter
字符流的出现是为了方便操作字符,更重要的是加入了编码转换
这两个流可以加入编码表,(还有两个流可以加入编码表,PrintStream,PrintWriter,但是他们只能打印),使用编码表,常用转换流。
常见编码表:
ASCII:美国标准信息交换码,一个字节的7位表示
ISO8859-1:拉丁码表。用一个字节8位表示
GB2312:中国的中文编码表
GBK:中国的中文编码表升级,融入更多的中文文字符号
(中国的码表兼容ASCII码表,因为有拼音,中国的码表用两个字节,每个字节的最高位都是1)
Unicode:国际标准码,融合了多种文字
UFT-8:最多用3个字节来表示一个字符
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------