Java核心API -- 10(File、RandomAccessFile)

 

1. File文件类java

    java使用File类(java.io.File)表示操做系统上文件系统中的文件或目录。换句话说,咱们可使用File操做硬盘上的文件或目录进行建立或删除。windows

   File能够描述文件或目录的名字,大小等信息,但不能对文件的内容操做!File类的构造器都是有参的。数组

    1)关于路径的描述:不一样的文件系统差别较大,Linux和Windows就不一样!最好使用相对路径,不要用绝对路径。dom

    2)“.”表明的路径:当前目录(项目所处的目录),在eclipse_workspace/project_name下,File.separator:常量,目录分隔符,推荐使用!根据系统自动识别用哪一种分割符,windows中为/,Linux中为\。eclipse

    3)建立该对象并不意味着硬盘上对应路径上就有该文件了,只是在内存中建立了该对象去表明路径指定的文件。固然这个路径对应的文件可能根本不存在!ide

    4)createNewFile()中有throws声明,要求强制捕获异常!编码

    5)新建文件或目录:spa

        ① boolean mkdir():只能在已有的目录基础上建立目录。操作系统

        ② boolean mkdirs():会建立全部必要的父目录(不存在的自动建立)并建立该目录。3d

        ③ boolean createNewFile():建立一个空的新文件。

    6)建立目录中文件的两种方式:

        ① 直接指定文件须要建立的位置,并调用createNewFile(),前提是目录都要存在!

        ② 先建立一个File实例指定文件即将存放的目录,若该目录不存在,则建立全部不存在的目录,再建立一个File实例,表明data.dat文件,建立是基于上一个表明目录的File实例的。使用File(File dir,String fileName)构造方法建立File实例,而后再调用createNewFile():在dir所表明的目录中表示fileName指定的文件。


    案例17:     

        wKiom1WXgCCgoKqgAAF59SAU8x4285.jpg


     7)查看文件或目录属性经常使用方法

        ① long length():返回文件的长度。

        ② long lastModified():返回文件最后一次被修改的时间。

        ③ String getName():返回文件或目录名。 ⑧String getPath():返回路径字符串。

        ④ boolean exists():是否存在。        ⑨boolean isFile():是不是标准文件。

        ⑤ boolean isDirectory():是不是目录。 ⑩boolean canRead():是否能够读取。

        ⑥ boolean canWrite():是否能够写入、修改。

        ⑦ File[] listFiles():获取当亲目录的子项(文件或目录


    案例18:

        wKioL1WXgh7yyoMyAAJJq58ydAY672.jpg 


     8)删除一个文件:boolean delete():①直接写文件名做为路径和"./data.dat"表明相同文件,也可直接写目录名,但要注意第2条。②删除目录时:要确保该目录下没有任何子项后才能够将该目录删除,不然删除失败!


    案例19:

        wKioL1WXgleiN026AAJeqJQQrps491.jpg


  

2. RandomAccessFile随机访问文件流

    能够方便的读写文件内容,但只能一个字节一个字节(byte)的读写8位。

    1)计算机的硬盘在保存数据时都是byte by byte的,字节埃着字节。

    2)RandomAccessFile打开文件模式:rw:打开文件后可进行读写操做;r:打开文件后只读。

    3)RandomAccessFile是基于指针进行读写操做的,指针在哪里就从哪里读写。

        ① void seek(long pos)方法:从文件开头到设置位置的指针偏移量,在该位置发生下一次读写操做。

        ② getFilePointer()方法:获取指针当前位置,而seek(0)则将指针移动到文件开始的位置。

        ③ int skipBytes(int n)方法:尝试跳过输入的n个字节。

    4)RandomAccessFile类的构造器都是有参的。

        ① RandomAccessFile构造方法1,参数是文件

            RandomAccessFile raf=new RandomAccessFile(file,"rw");

        ② RandomAccessFile构造方法2,参数是字符串路径(文件名)

            RandomAccessFile raf=new RandomAccessFile("data.dat","rw");

    5)读写操做完了,再也不写了就关闭:close();

    6)经常使用方法

        写方法

        ① write(int data):写入第一个字节,且是从低8位写。

        ② write(byte[] data):将一组字节写入。

        ③ write(byte[] data.int offset,int length):从data数组的offset位置开始写,连续写length个字节到文件中。

        ④ writeInt(int):一次写4个字节,写int值。

        ⑤ writeLong(long):一次写8个字节,写long值。

        ⑥ writeUTF(String):以UTF-8编码将字符串连续写入文件。

        读方法:

        ① int read():读一个字节,若已经读取到文件末尾,则返回-1。

        ② int read(byte[] buf):尝试读取buf.length个字节。并将读取的字节存入buf数组。返回值为实际读取的字节数。

        ③ int readInt():连续读取4字节,返回该int值

        ④ long readLong():连续读取8字节,返回该long值

        ⑤ String readUTF():以UTF-8编码将字符串连续读出文件,返回该字符串值


    案例20:

        wKiom1WXghvwNygJAAPxe2Cw8tg010.jpg


    7)RandomAcceccFile执行复制操做:读取一个文件,将这个文件中的每个字节写到另外一个文件中就完成了复制功能。


    案例21:

        wKioL1WXhDvB7klTAANh2g2EQDw936.jpg

相关文章
相关标签/搜索