Java 将int从.txt传输到数组的更有效方法

Java 将int从.txt传输到数组的更有效方法,java,arrays,int,Java,Arrays,Int,因此,我目前正在制作一个2D游戏,其中地图预先生成在一个.txt文件中,然后读取并加载到一个数组中 数组存储在World类中(我使用的是greenfoot),我这样做的方法是:(map声明并初始化为以前的世界大小,map是一个完美的矩形) Scanner scan=新扫描仪(新文件(“map.txt”); 对于(inti=0;i,请尝试使用二进制格式来处理二进制数据,而不是以文本格式存储数据 如果您不想添加任何库,请尝试java序列化/反序列化,使用它您将能够存储完整数组并将其作为完整数组读取。

因此,我目前正在制作一个2D游戏,其中地图预先生成在一个.txt文件中,然后读取并加载到一个数组中

数组存储在World类中(我使用的是greenfoot),我这样做的方法是:(map声明并初始化为以前的世界大小,map是一个完美的矩形)

Scanner scan=新扫描仪(新文件(“map.txt”);

对于(inti=0;i,请尝试使用二进制格式来处理二进制数据,而不是以文本格式存储数据


如果您不想添加任何库,请尝试java序列化/反序列化,使用它您将能够存储完整数组并将其作为完整数组读取。

您可以尝试每2个字节(=每2个字符)生成一个库表示地图块。为了节省在竞赛编码世界中检索地图的运行时间,建议使用扫描仪而不是
扫描仪来读取数据,因为它速度更快。这在您的情况下也可能是有利的。如果您不需要超过256个对象,甚至每个字节都是一个块在你的game@AdamCherti嗨,我来看看。目前1 int代表1个块。我有一个5000x600块的映射LOL。所以我肯定会有超过256个对象。@anorton非常感谢!我来看看。嗨,我在12年级的计算机科学课上还没有学过这个。=p有更简单的方法吗?这并不难。文件是一个字节列表表示字符。因此,e字母实际上是一个数字,例如152。因此,文件的每个字节都将是一个小于256的数字,因为一个字节可以表示0到255之间的数字。这个数字将表示“代码”一个地图块。它会快得多。否则,如果你选择扫描整数,那么这是你的选择,你将不得不等待地图加载,并像其他游戏一样:显示一个“领先”屏幕
Scanner scan = new Scanner ( new File("map.txt"));
for(int i = 0; i<map.length;i++)
{
   for( int j = 0;j<map[0].length; j++;)
   {
    map[i][j]=scan.NextInt();
   }
}