RandomAccessFile的理解
2016-08-29 11:36
204 查看
1. RandomAccessFile的概念和作用
RandomAccessFile的直接父类是Java.lang.Object,用来访问那些保存数据记录的文件。它最大的特别之处就是支持任意访问的方式,程序可以直接跳到任意地方来读写数据。如果我们只希望访问文件的部分内容,而不是把文件从头读到尾,使用RandomAccessFile将会带来更简洁的代码以及更好的性能。它的构造函数需要提供一个表示以只读方式(“r”),还是以读写方式(“rw”)打开文件的参数。它不支持只写文件。2. RandomAccessFile的构造方法
1) RandomAccessFile(File file, String mode)File file = newFile("D:"+File.separator+"TestRAF"+ File.separator+"lgy.txt"); try { byte[] buff=new byte[1024]; int c ; RandomAccessFile raf = new RandomAccessFile(file, "r"); while ((c=raf.read(buff))!=-1) { System.out.println(new String(buff,0,c)); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
2) RandomAccessFile(String name, String mode)
try { byte[] buff=new byte[1024]; int c ; RandomAccessFile raf = new RandomAccessFile("D:"+ File.separator+"TestRAF"+File.separator+"lgy.txt", "r"); while ((c=raf.read(buff))!=-1) { System.out.println(new String(buff,0,c)); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
3. RandomAccessFile的方法
1) public long getFilePointer() 返回文件记录指针的当前位置2) public void seek(long pos) 将文件记录指针定位到pos的位置
3) public long length() 返回文件的大小
4. RandomAccessFile使用例子
1) 读取文件的一部分内容//文件的内容是:lgy1lgy2lgy3,要读取lgy2 try { byte[] buff=new byte[64]; RandomAccessFile raf = new RandomAccessFile("D:"+File.separator+"TestRAF"+File.separator+"lgy.txt", "r"); raf.seek(4); while (raf.read(buff)!=-1) { System.out.println(new String(buff,0,4)); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
2) 向文件末尾追加内容
//文件的内容是:lgy1lgy2lgy3,在末尾追加lgy4 try { RandomAccessFile raf = new RandomAccessFile("D:"+File.separator+"TestRAF"+File.separator+"lgy.txt", "rw"); raf.seek(raf.length()); raf.write("lgy4".getBytes()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
相关文章推荐
- 深入理解JAVA I/O系列四:RandomAccessFile
- 深入理解JAVA I/O系列四:RandomAccessFile
- Java IO深入理解读写文件(FileInputStream、FileOutputStream、FileReader、FileWriter、RandomAccessFile)
- 对RandomAccessFile的理解
- 深入理解JAVA I/O系列四:RandomAccessFile
- Java IO深入理解RandomAccessFile
- java中RandomAccessFile 类对文件进行读写
- RandomAccessFile的应用
- 随机访问文件RandomAccessFile 与 内存映射文件MappedByteBuffer
- 断点下载神器-RandomAccessFile
- Java RandomAccessFile用法
- java I/O流(4) RandomAccessFile
- RandomAccessFile任意访问文件的位置
- RandomAccessFile读取文本最后一行以及倒序读取文本
- java中获得文件大小,用RandomAccessFile的lengh方法
- Unable to open table file ..\data\model_ckpt: Unknown: NewRandomAccessFile failed to Create/Open:
- JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码
- (43)使用RandomAccessFile访问指定的中间部分数据
- RandomAccessFile
- Java使用RandomAccessFile读写文件