Java: RandomAccessFile写入对象
来源:互联网 发布:魔法贴是什么软件 编辑:程序博客网 时间:2024/06/07 08:28
最近在用Java写一个数据库,在实现对文件操作时需要将一个对象写入到文件中。
一个简单粗暴的方法是直接将对象各个属性的值写进去,之后读取的时候按写入的格式读取。
但这种方式毕竟不优雅,虽然Java提供了ObjectOutputStream来将对象可序列化,但有个很大的问题是使用ObjectOutputStream时会将原先文件的内容清空。
如果想用文件指针形式的RandomAccessFile来写入,却没有提供写入object的接口。
想要解决这个问题需要用到ByteArrayOutputStream。
方法:用ByteArrayOutputStream将对象转成byte数组,然后再使用RandomAccessFile写入byte数组
import java.io.*;/** * Created by IntelliJ IDEA. * User: MessengerOfSpring * Date: 2017/4/8 * Time: 15:43 */class Test implements Serializable { int a; int b; Test(int a, int b) { this.a = a; this.b = b; }}public class Main { public static void main(String[] args) { String fileName = "main.txt"; try { RandomAccessFile raf = new RandomAccessFile(fileName, "rw"); byte[] header = new byte[100]; raf.write(header, 0, header.length); Test t = new Test(2, 3); ByteArrayOutputStream bo = new ByteArrayOutputStream(); ObjectOutputStream oo = new ObjectOutputStream(bo); oo.writeObject(t); header = bo.toByteArray(); raf.seek(0); raf.write(header,0,header.length); raf.close(); } catch (IOException e) { e.printStackTrace(); } }}
0 0
- Java: RandomAccessFile写入对象
- Java RandomAccessFile 随机写入文件
- <Java>RandomAccessFile在文件中定位写入
- Java中正确使用RandomAccessFile向文件中写入中文
- Java中使用RandomAccessFile向文件最后写入内容
- java IO RandomAccessFile的写入和随机读取
- Java RandomAccessFile
- Java RandomAccessFile
- java RandomAccessFile
- 【Java】RandomAccessFile
- Java RandomAccessFile
- Java RandomAccessFile
- java RandomAccessFile
- java-RandomAccessFile
- RandomAccessFile的读取与写入
- java基础——IO流及File、RandomAccessFile对象
- java当中randomAccessFile文件随机读取对象的简单使用
- java将对象写入文件
- 坚持#第163天~报亲恩
- LeetCode 260 Single Number III
- QT --鼠标拖动界面
- 常用物联网应用协议汇总
- f
- Java: RandomAccessFile写入对象
- 个人理解 —— Dagger2中注解
- 客户端开发设计总结
- 退役
- ECMA2015(ES6)简单入门-2-参数默认-...-解构参数-__proto__
- Redis源码剖析和注释(六)--- 压缩列表(ziplist)
- ECMA2015(ES6)简单入门-1-let块-恒量const-解构-字符串模板
- 去掉宏__FILE__的路径
- linux命令