• RandomAccessFile
  1. java提供的对文件内容的访问,既可以读文件,也可以写文件。
  2. 支持随机访问文件,可以访问文件的任意位置。
  3. java文件模型,在硬盘上的文件是byte byte byte存储的,是数据的集合
  4. 打开文件,有两种模式,“rw”读写、“r”只读;RandomAccessFile raf = new RandomAccessFile(file, "rw");,文件指针,打开文件时指针在开头 point = 0;
  5. 写方法, raf.write()-->只写一个字节(后八位),同时指针指向下一个位置,准备再次写入
  6. 读方法,int b = raf.read()-->读一个字节
  7. 文件读写完成以后一定要关闭(Oracle官方说明)

RafDemo.java

package com.test.io;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Arrays; public class RafDemo { public static void main(String[] args) throws IOException {
File demo = new File("demo");
if (!demo.exists()) {
demo.mkdir();
}
File file = new File(demo, "raf.dat");
if (!file.exists()) {
file.createNewFile();
}
RandomAccessFile raf = new RandomAccessFile(file, "rw");
System.out.println(raf.getFilePointer()); raf.write('A');//一个char型占两个字节,但是write一次只写入一个字节(A字符的后八位)
System.out.println(raf.getFilePointer());
raf.write('B'); int i = 0x7fffffff;
raf.write(i >>> 24);//写入i的高八位
raf.write(i >>> 16);
raf.write(i >>> 8);
raf.write(i);
System.out.println(raf.getFilePointer());
//直接写入一个int
raf.writeInt(i); String s = "你";
byte[] b = s.getBytes("utf8");
raf.write(b);
System.out.println(raf.length()); //读文件,必须把指针移到头部
raf.seek(0);
//一次性读取,把文件中的内容都读到字节数组中
byte[] buf = new byte[(int) raf.length()];
raf.read(buf);
System.out.println(Arrays.toString(buf));
for (byte c : buf) {
System.out.print(Integer.toHexString(c & 0xff) + " ");
}
//关闭文件
raf.close();
} }

  执行结果:


[, , , -, -, -, , -, -, -, -, -, -]
7f ff ff ff 7f ff ff ff e4 bd a0

最新文章

  1. POJ 1061 青蛙的约会 扩展欧几里得
  2. Python 创建函数和代码重用
  3. 队列与DelphiXe新语法
  4. Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YSE)
  5. python参考手册--第4、5、6、7章
  6. 07_控制线程_join_线程插队
  7. 学习笔记DAY2
  8. AVOS Cloud Hackathon - SegmentFault
  9. java.io.EOFException解决
  10. android usb挂载分析---MountService启动
  11. ES6躬行记(21)——类的继承
  12. C#删除文件夹以及删除文件
  13. java面试题大全-基础方面 答案自己写
  14. STM32 SPI接口的NSS引脚
  15. Bootstrap自学笔记
  16. PHP实现对站点内容外部链接的过滤方法
  17. 用 Redis Desktop Manager 远程连接 redis 数据库。
  18. 【博弈论】【SG函数】Codeforces Round #188 (Div. 1) D. Game with Powers
  19. 目标是:互联网方向的Java开发工程师
  20. linux host=${host:-"localhost"}使用方法

热门文章

  1. Kibana6.x.x源码分析--如何使用kibana的savedObjectType对象
  2. BZOJ 3224 Treap
  3. Putty之public key ssh认证入门
  4. C++ GUI Qt4编程(05)-2.2GoToCell
  5. centos yum安装高版本php,apache,mysql
  6. PIE SDK最小噪声变换
  7. python练习六十九:urllib爬取练习
  8. (转)Linux SSH批量分发管理
  9. opengl键盘回调函数不能获取Ctrl+c的问题
  10. jQuery中的事件——《锋利的JQuery》