黑马程序员——学习笔记补充-RandomAccessFile

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------


RandomAccessFile该类不算是IO体系中的子类。而直接继承自Object。但是它是IO包中成员,因为它具备读与写的功能。内部封装了一个数组,而且通过指针对数组的元素进行操作。可以通过getFilePointer获取指针位置,同时可以通过seek改变指针的位置。

其实完成读写的原理就是内部封装了字节输入流和输出流。
通过构造函数可以看出,该类只能操作文件!
而且操作文件还有模式~~~:只读r,读写rw等。
如果模式为只读r,不会创建文件,会去读取一个已存在的文件,如果该文件不存在,则会出现异常。如果模式为rw,则会自动创建。
而且该对象的构造函数要操作的文件不存在,会自动创建。如果存在会覆盖。

[java]  view plain copy
  1. import java.io.*;  
  2.   
  3. class RandomAccessFileDemo   
  4. {  
  5.     public static void main(String[] args) throws IOException  
  6.     {  
  7.         //writeFile();  
  8.         //readFile();  
  9.         writeFile_2();  
  10.     }  
  11.     public static void readFile() throws IOException   
  12.     {  
  13.         RandomAccessFile raf = new RandomAccessFile("ran.txt","r");  
  14.         //raf.write("haha".getBytes());  
  15.   
  16.         //调整对象中指针  
  17.         //raf.seek(8);//可以往前走  
  18.   
  19.         //跳过指定的字节数  
  20.         raf.skipBytes(8);//只能往后跳  
  21.         byte[] buf = new byte[4];  
  22.         raf.read(buf);  
  23.         String name = new String(buf);  
  24.   
  25.         int age = raf.readInt();  
  26.   
  27.         System.out.println("name="+name);  
  28.   
  29.         raf.close();  
  30.     }  
  31.     //随机写  
  32.     public static void writeFile_2() throws IOException  
  33.     {  
  34.         RandomAccessFile raf = new RandomAccessFile("ran.txt","rw");  
  35.         raf.seek(8*3);  
  36.         raf.write("周期".getBytes());  
  37.         raf.writeInt(103);  
  38.         raf.close();  
  39.     }  
  40.   
  41.     public static void writeFile() throws IOException  
  42.     {  
  43.         RandomAccessFile raf = new RandomAccessFile("ran.txt","rw");  
  44.   
  45.         raf.write("李四".getBytes());  
  46.         raf.writeInt(97);  
  47.         raf.write("王五".getBytes());  
  48.         raf.writeInt(99);  
  49.   
  50.         raf.close();  
  51.     }  
  52. }  


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

你可能感兴趣的:(黑马程序员——学习笔记补充-RandomAccessFile)