RAF(RandomAccessFile)类
作用:读取文件
/*** */
package com.io.file;import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Arrays;/*** * .* Description: * RandomAccessFile:随机读写文件类* 读写:文件的写入,只写入一个byte,从后八位写入 读,只读一个byte,读完后,指针自动指向下一个byte* 文件读写完成后一定关闭* 模式:两种:rw、r* 关闭:文件用完即关* Author: @xieji* Date: 2016年11月14日 下午2:19:21* Copyright: Copyright ©2013-2017 https://github.com/Jacob233 (github主页 0.0)* Changelog:* Ver Date Author Detail* --------------------------------------------------------------------------------* 1.0 2016年11月14日 下午2:19:21 @xieji*
*/
public class RAFDemo {// 随机读写文件测试public void testRAF() throws IOException {File demo = new File("demo");// 判断file是否存在,若不存在则创建if (!demo.exists()) {demo.mkdir();}// 判断file是否存在文件,若不存在则创建File content = new File(demo, "raf.txt");if (!content.exists()) {content.createNewFile();}// 获取读写文件类randomAccessFile(模式为读写rw,还有一种模式是r)RandomAccessFile raf = new RandomAccessFile(content, "rw");// raf通过指针实现随机读写System.out.print(raf.getFilePointer() + " ");// 初始指针// 写入(指针在移动)raf.write('A');System.out.print(raf.getFilePointer() + " ");raf.write('B');System.out.print(raf.getFilePointer() + " ");// 1.写入整形 :写入只能从后八位,测试通过int最大数int maxInt = 0x7fffffff;raf.write(maxInt >>> 24 & 0xff);// 向右移动24位,即高八位raf.write(maxInt >>> 16 & 0xff);raf.write(maxInt >>> 8 & 0xff);raf.write(maxInt >>> 0 & 0xff);// 上述代码,可用下面的一行代替// raf.writeInt(maxInt);System.out.print(raf.getFilePointer() + " ");// 2.写入字符串String word = "谢ji";byte b[] = word.getBytes("gbk");raf.write(b);System.out.println(raf.length());System.out.print(raf.getFilePointer() + " ");raf.writeChars(word);System.out.print(raf.getFilePointer() + " ");System.out.println();// 读取文件byte[] bytes = new byte[(int) raf.length()];// 先将指针只会头节点raf.seek(0);raf.read(bytes);System.out.println(Arrays.toString(bytes));// for (byte c : bytes) {// System.out.print(Integer.toHexString(c&0xff)+" ");// }// 关闭raf.close();}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
