我正在尝试将我创建的多个数据文件存储到一个文件中。每个文件都有一个ID#(0-35),每个文件都包含一些数据。但我想要的是能够将所有文件存储在一个名为'data.xx'的文件中,然后才能访问data.xx文件中的每个文件数据。
public static void pack(int id) {
try {
RandomAccessFile raf = new RandomAccessFile("./data/data.xx", "rw");
ByteArrayInputStream bis = null;
try {
byte[] data = toByteArray(id);
bis = new ByteArrayInputStream(data);
raf.seek(raf.length());
System.out.println(raf.length());
while (bis.read(data, 0, data.length) >= 0) {
raf.write(data, 0, data.length);
}
} finally {
bis.close();
raf.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
toByteArray(id)调用单独的数据文件,然后将其放入字节数组中。所有文件似乎都可以写入data.xx文件。我遇到的问题是我不确定如何读取data.xx文件,以便从存储在其中的文件中获取数据。我希望这是有道理的。此外,我不需要任何压缩,我不想为此使用库。
谢谢
答案 0 :(得分:0)
最简单的方法是使用标记:
<id_0> content of file 0 </id_0>
...
<id_35> content of file 35 </id_35>
您可以像这样编写文件,并使用substring
答案 1 :(得分:0)
我会在输出文件前面加上每个包含文件的开头的偏移量。一个特殊的#34;令牌&#34;是一个不错的主意,但文件可以包含任何字节或字节;使这个想法不现实。那样你的&#34;索引&#34;将以您不能与文件数据混淆的内容终止,因为信息是在您预期任意数据之前发生的......比如,0
?如果我误解了这个问题,请评论。