RandomAccessFileDemo1 写文件的方法
/**
* 文件操作 --- RandomAccessFile
* Java提供了一个可以对文件随机访问的操作,访问包括读和写操作。基于指针形式读写文件数据。
* 该类名为RandomAccessFile。该类的读写是基于指针的操作。
RandomAccessFile支持两种创建模式
只读模式:仅对文件数据进行读取工作
读写模式:对文件数据读写操作
常用构造方法
RandomAccessFile(File file,String mode)
//如果有File对象写对象
RandomAccessFile(String path,String mode)
//如果没有File对象,直接写路径名
其中mode对应的字符串为:
r:只读模式 rw:读写模式
读写方法:
RandomAccessFile提供了一个可以向文件中写出字节的方法: void write(int d)
RandomAccessFile提供了一个可以从文件中读取字节的方法: int read()
注意:读写全部进行完毕后必须关闭释放资源
*/
public class RandomAccessFileDemo1 { public static void main(String[] args) throws IOException { //创建一个基于文件访问的读写模式的RandomAccessFile我们只需要在第二个参数中传入”rw”即可。 RandomAccessFile rafDemo = new RandomAccessFile("rafDemo.txt","rw"); //那么这时在使用RandomAccessFile对该文件的访问就是又可读又可写的。 /* RandomAccessFile提供了一个可以向文件中写出字节的方法: * void write(int d) * 写出一个字节,写的是给定的int值所对应的2进制的"低八位" * (方法会根据当前指针所在位置处写入一个字节,是将参数int的”低8位”写出。) * vvvvvvvv * 00000000 00000000 00000000 00000001 */ rafDemo.write(97); /* 会进行二进制的低八位转化写给rafDemo文件.文本编辑器会将低八位转换成字符显示出来. 所以rafDemo.txt的内容用记事本打开会显示一个字符a */ /*提示语句*/ System.out.println("写入完毕"); //读写全部进行完毕后必须关闭释放资源 rafDemo.close(); } }
RandomAccessFileDemo2 读取文件内容
/**
* 文件操作 --- RandomAccessFile
*
* RandomAccessFile提供了一个可以从文件中读取字节的方法: int read()
* 该方法会从RandomAccessFile当前指针位置读取一个byte(8位) 填充到int的低八位,
高24位为0, 返回值范围正数: 0~255, 如果返回-1表示读取到了文件末尾EOF(EOF:End Of File)!
每次读取后自动移动文件指针, 准备下次读取。
总结:1.在无参数,不循环的情况下,这个方法, 只会读取第一个字节(8位)的内容并返回对应的int型数值.
2.如果这个字节的内容超过0~255范围,那么只截取这个int型整数的二进制的最低8位.
注意:读写全部进行完毕后必须关闭释放资源
*/
public class RandomAccessFileDemo2 { public static void main(String[] args) throws IOException { //创建一个基于文件访问的读写模式的RandomAccessFile我们只需要在第二个参数中传入”rw”即可。 RandomAccessFile rafDemo = new RandomAccessFile("rafDemo.txt","rw"); //那么这时在使用RandomAccessFile对该文件的访问就是又可读又可写的。 /* 读取一个字节的方法: int read() 该方法会从RandomAccessFile当前指针位置读取一个byte(8位) 填充到int的低八位, 高24位为0, 返回值范围正数: 0~255, 如果返回-1表示读取到了文件末尾EOF(EOF:End Of File)! 每次读取后自动移动文件指针, 准备下次读取。 */ int returnLen = rafDemo.read(); //注意:读取的规则:从此文件中 当前指针位置 读取一个数据字节(8位). //将1个字节的内容转换成十进制,返回给int returnLen. System.out.println(returnLen); //读写全部进行完毕后必须关闭释放资源 rafDemo.close(); } }