RAF(RandomAccessFile)类
作用:读取文件
/**
*
*/
package com.io.file;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Arrays;
/**
* <pre>
* <b>.</b>
* <b>Description:</b>
* RandomAccessFile:随机读写文件类
* 读写:文件的写入,只写入一个byte,从后八位写入 读,只读一个byte,读完后,指针自动指向下一个byte
* 文件读写完成后一定关闭
* 模式:两种:rw、r
* 关闭:文件用完即关
* <b>Author:</b> @xieji
* <b>Date:</b> 2016年11月14日 下午2:19:21
* <b>Copyright:</b> Copyright ©2013-2017 https://github.com/Jacob233 (github主页 0.0)
* <b>Changelog:</b>
* Ver Date Author Detail
* --------------------------------------------------------------------------------
* 1.0 2016年11月14日 下午2:19:21 @xieji
* </pre>
*/
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();
}
}
RAF(RandomAccessFile)类的更多相关文章
- 使用RandomAccessFile类对文件进行读写
1. RandomAccessFile类简介 前面一篇随笔<File类遍历目录及文件>中有说到,File类只能用于表示文件或目录的名称.大小等信息,而不能用于文件内容的访问.而当需要访 ...
- 【Java IO流】RandomAccessFile类的使用
RandomAccessFile类的使用 RandomAccessFile类是java提供的对文件内容的访问,既可以读文件,也可以写文件. 支持随机访问文件,可以访问文件的任意位置. RandomAc ...
- 输入和输出--RandomAccessFile类
RandomAccessFile 类 RandomAccessFile 类既可以读取文件内容,也可以向文件输出数据. RandomAccessFile 类支持 "随机访问" 的方式 ...
- (转)RandomAccessFile类使用详解
1.RandomAccessFile特点 RandomAccessFile是java Io体系中功能最丰富的文件内容访问类.即可以读取文件内容,也可以向文件中写入内容.但是和其他输入/输入流不同的 ...
- RandomAccessFile类——高效快捷地读写文件
RandomAceessFile类 RandomAccessFile类是一个专门读写文件的类,封装了基本的IO流,在读写文件内容方面比常规IO流更方便.更灵活.但也仅限于读写文件,无法像IO流一样,可 ...
- 利用RandomAccessFile类在指定文件指定位置插入内容
package File; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...
- Java基础(二十八)Java IO(5)RandomAccessFile类与过滤器流(Filter Stream)
一.RandomAccessFile类 使用RandomAccessFile类可以读取任意位置数据的文件. 1.构造方法 RandomAccessFile(String name, String mo ...
- Java基础 使用转换流进行文件的复制 / RandomAccessFile 类进行文件的复制
笔记: **使用转换流进行文件的复制 文本文件---字节流FileInputStream--> [InputStreamReader] -----字符流BufferedReader------ ...
- [Java IO]01_File类和RandomAccessFile类
File类 File类是java.io包中唯一对文件本身进行操作的类.它可以进行创建.删除文件等操作. File类常用操作 (1)创建文件 可以使用 createNewFille() 创建一个新文 ...
- RandomAccessFile类
File类只是针对文件本身进行操作,而如果要对文件内容进行操作,则可以使用RandomAccessFile类,此类属于随机读取类,可以随机地读取一个文件中指定位置的数据. //============ ...
随机推荐
- ittun配置和使用教程
有好久没写博了.时间过得真快,一下子一年又过去了. 不墨迹这么多了. 作为一个前端,页面写好了少不了做测试以及给其他同事看看效果,然而公司没有测试服务器,真是悲催哦. 一直都是用ip地址看页面的.但是 ...
- iOS UISearchBar 设置取消按钮,回收键盘,并修改cancel为“取消”
继承协议: UISearchBarDelegate 在代理方法中设置: #pragma mark --- 搜索框开始编辑 --- - (void)searchBarTextDidBeginEditin ...
- Visor 应用之一 通过ER 设计生成数据库脚本和实体对象
前言 Visor(http://www.visor.com.cn) 是一个基于HTML5 Canvas 开发的IDE 框架和设计开发平台,有关Visor的设计架构和技术应用,在以后的文章里会逐渐跟 ...
- Storm进程通信机制
storm的worker进程之间消息传递机制图: 每个worker都有一个独立的监听进程,监听配置文件中配置过的端口列表supervisor.slots.ports,topology.receiver ...
- I/O Directory类
Directory类 Directory类位于System.IO 命名空间.Directory类提供了在目录和子目录中进行创建移动和列举操作的静态方法.此外,你还可以访问和操作各种各样的目录属性. 1 ...
- Hollister Outlet Store
(link to hollisterco site), It's a major try. After a photographer's viewpoint, Which roughly splend ...
- Log4j 用法
一.Log4j基本使用方法 Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式.日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来 ...
- Puppet安装及部署
本篇博客主要介绍Puppet的安装部署,后续会更新其他相关内容 一.简介 二.环境介绍 三.安装Puppet 四.配置Puppet-dashboard 五.配置Puppet Kick 一.简介 Pup ...
- Pair Project: Elevator Scheduler [电梯调度算法的实现和测试] --11061188刘强
结对编程总结 队员:刘强(11061188) 林谋武(11061169) 结对编程: 结对编程的优点: 1. 两个人合作,相比于一个人自己奋斗而言,更能激发自己的潜能:我们在合作过程中,互相学习,互 ...
- 关于ajax跨域请求(cross Domain)
Cross Domain AJAX主要就是A.com网站的页面发出一个XMLHttpRequest,这个Request的url是B.com,这样的请求是被禁止的,浏览器处于安全考虑不允许进行跨域访问, ...