我正在尝试编写一个通过写入文本文件来模拟数据库的程序。我可以读取一个包含要使用的数据的文本文件,然后将其转换为字节数组以存储到另一个文本文件中。我遇到的问题是,当我从字符串转换为字节数组时,我不断收到 java.lang.ArrayIndexOutOfBoundsException:8。我将值硬编码到我的 for 循环中,因此它不应该是无效的索引数组,但似乎没有什么可以解决问题。这是我显示错误的函数:
public void writeBucket(int bucket, String importFile, String[][] allrecords)
{
theDisk = new FakeDisk();
for(int z = 0; z < bucket; z++)
{
try
{
for(int j = 0; j < 7; z++)//for(int j = 0; j < allrecords[z].length; z++)
{
if(allrecords[z][j] == null) //this is the line where the error shows up
{
continue;
}
theDisk.writeSector(z, allrecords[z][j].getBytes());
}
}
catch(Exception e)
{
//System.out.println(e.getMessage());//this prints the number 8 when not commented out
continue;
}
}
try
{
FileWriter fwrite = new FileWriter(importFile);
fwrite.write("\n\n\n\n");
fwrite.close();
}
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
}
我将循环放在 try/catch 中,认为它至少仍会将字节输出到我的文本文件,然后一旦遇到无效索引就不再向文件添加任何内容,但事实并非如此。我主要无法弄清楚为什么我不断收到此错误。我可以毫无问题地打印出数组,如果我不尝试将其写入文本文件,一切都会显示出来。
任何帮助表示赞赏!