RandomAccessFile类:提供了随机读写文件的功能。
/**创建File对象:*/
//创建一个指定文件或目录路径的File对象。(path是路径,则file表示目录。path是文件名,则file表示文件)
File file= new File(String path);
//创建一个指定文件目录路径和文件名(或目录)的File对象。
File file= new File(String filePath,String fileName);
//创建一个由File对象和指定文件名表示的File对象。
File file= new File(File file,String fileName);
/**三种创建方式的例子依次:*/
1. File f = new File("d:/hello.txt");
2. File f = new File("d:/", "hello.txt");
3. File f = new File(new File("d:/"), "hello.txt");
注意:
File类只能对文件进行一些简单的操作,如获取属性,创建,删除,更名等,并不能支持文件内容的读写。要对文件内容进行读写操作,需要通过IO流。
RandomAccessFile随机存取类:
随机访问文件类RandomAccessFile提供随机访问的方法,可以在文件中任意的移动读取位置,使用它的seek()方法来移动文件指针到指定位置,移动的单位是字节。
内部封装了一个数组,通过指针对数组的元素进行操作。
创建RandomAccessFile对象:
//创建随机存取文件,文件名由File参数指定
RandomAccessFile raf = new RandomAccessFile(File file,String,mode);
//创建随机存取文件,文件具有指定名称
RandomAccessFile raf = new RandomAccessFile(String name,String mode);
mode:
r : 以只读的方式打开 w:以只写的方式打开
rw:打开以便读取和写入。若文件不存在,则创建。
方法:
write(int b)
write(byte[] buf)
输出数组中的全部字节值
write(byte[] buf, int from, int n)
输出数组中的从 from 开始的 n 个
read()
读取数据。读取完后,再读取,返回 -1
read(byte[] buf)
根据数组长度,读取一批字节值,放入数组,返回读取并放入数组的字节·,读取完后,再读取,返回-1
seek(int position)
定位下标到指定位置
eg:seek(0)把指针移到0位置
int skipBytes(int n)
跳过输入的n个字节的数据并返回跳过的实际字节数。
long getFilePointer()
返回此文件的当前位置与到文件开头位置的偏移量。