Java 将对象属性转换为始终相同长度的字符串

Java 将对象属性转换为始终相同长度的字符串,java,Java,可能重复: 我想将我的对象写入一个文件,其中每个对象的表示都是相同长度的,这样我就可以跳转到文件的某个部分进行读取,而不必读取整个文件 这是必要的,因为文件将被许多VM读取,并且大小为TBs。最好的方法是什么?为了实现这一点,我尝试将它们放在一个int数组中,但似乎这一步肯定是不必要的。我一次一个地将每个对象传递回另一个writer对象。干杯 // Convert Person attributes to integers and put in an array int[] person =

可能重复:

我想将我的对象写入一个文件,其中每个对象的表示都是相同长度的,这样我就可以跳转到文件的某个部分进行读取,而不必读取整个文件

这是必要的,因为文件将被许多VM读取,并且大小为TBs。最好的方法是什么?为了实现这一点,我尝试将它们放在一个int数组中,但似乎这一步肯定是不必要的。我一次一个地将每个对象传递回另一个writer对象。干杯

// Convert Person attributes to integers and put in an array
int[] person = new int[8];
person[0] = age;
if (gender.equals("m")) {person[1] = 1;}
else {person[1] = 0;}
person[2] = children;
person[3] = goodHealth? 1:0;
person[4] = cars;
person[5] = avgWeekShopping;
person[6] = salary;
person[7] = smoker? 1:0;

return person;

如果将值写入字节数组,速度会更快。这可以直接写入任何输出流。您还可以节省一些空间,比如用一个字节来编码smoker标志


所以您需要使用静态方法,一个获取bean并返回
字节[]
,另一个获取
字节[]
并创建新bean。所有数组大小相同,您可以轻松计算单个数据集的偏移量,而无需额外的索引文件。

是否发布代码示例?是否编写任意对象?或者它们都是某些类层次结构的不同实例?另外,将它们全部写入一个文件的目的是什么?不同的虚拟机将读取文件是什么意思?它们都是同一类的实例。我正在模拟一个电子社会科学系统,它可以查询一个非常大的虚拟人口数据集。我希望工作虚拟机从一个文件中读取分配的块。我知道会出现I/O瓶颈。我现在发布一些代码。谢谢把它放在原来的问题上,这个问题可能很快就要结束了。注意-发布一个与您先前发布的问题几乎相同的问题可能会导致快速关闭。