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:
7)查看文件或目录属性经常使用方法
① long length():返回文件的长度。
② long lastModified():返回文件最后一次被修改的时间。
③ String getName():返回文件或目录名。 ⑧String getPath():返回路径字符串。
④ boolean exists():是否存在。 ⑨boolean isFile():是不是标准文件。
⑤ boolean isDirectory():是不是目录。 ⑩boolean canRead():是否能够读取。
⑥ boolean canWrite():是否能够写入、修改。
⑦ File[] listFiles():获取当亲目录的子项(文件或目录)
案例18:
8)删除一个文件:boolean delete():①直接写文件名做为路径和"./data.dat"表明相同文件,也可直接写目录名,但要注意第2条。②删除目录时:要确保该目录下没有任何子项后才能够将该目录删除,不然删除失败!
案例19:
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:
7)RandomAcceccFile执行复制操做:读取一个文件,将这个文件中的每个字节写到另外一个文件中就完成了复制功能。
案例21: