我正在创建一个程序,它将读取一个 txt 文件(从另一个主 txt 文件),获取作为一堆字母(@-K)的字符串,然后用字符串中字符的 ASCII 值填充一个二维数组. 所以我已经成功创建了二维数组并读取了文件。问题是我的数组仅由字符串文件的第一个字母填充,而不是通过整个文件。我有一个 if 语句,我认为应该通读文件并正确填充它,但它没有这样做。无法弄清楚我做错了什么。这是代码。
public static void main(String[] args) throws IOException
{
String txtfile;
String txtfilecontents;
int matrix[][]= new int [24][34];
int row=0;
int col=0;
BufferedReader masterfile = new BufferedReader(new FileReader("imageFileList.txt"));
while((txtfile=masterfile.readLine())!=null) //reads master text file
{
BufferedReader imagefile= new BufferedReader(new FileReader(txtfile));
while((txtfilecontents=imagefile.readLine())!=null) //reads text file within master file
{
for(int i=0;i<txtfilecontents.length();i++)
{
if(col ==34)
{
col = 0;
row++;
}
if(row ==24)
{
col=0;
row=0;
break;
}
matrix[row][col] = (int)txtfilecontents.charAt(i)-64; //instead of adding every character it only adds the first one until it fills up the 2d array
col++;
}
System.out.println(txtfilecontents);
for(row=0;row<24;row++)
{
for(col=0;col<34;col++)
System.out.printf("%4d",matrix[row][col]);
System.out.println();
}
}
System.out.println(txtfile);
}
}
这是 txtfile 中包含的内容的示例。
AKHIICG@KDHDJKGHHHFGECEGHEIEHDCBF@DB@DDIABHI@GHAFAFHEGCECEJ@GHKJCBGFFFH@IB@JB@KKBFAGABCJHJ@AEDIABGI@DDCJHCAK@@FBKHGB@KFI@KKEJCJFHBDAJBAJKCGEE@DFDBBD@GDEIJAIKBHCDH@AAJK@EJHEGGKGJEJ@@F@@AGDFECCFIFHDEGHBJCABEKBFIIEBJGFHKJJFKFKDEKHBBEIBAHBGKDHKFKCAEJFDHEHK@@AIIBF@EEBB@BEGEBIKDJGKEJKHKHAJJDGFKFGIKI@ECH@FBEEGKDACKGHAIBCJGDJCEKD@K@AGGHGACHCE@HCEDI@FDJDGIJAJFCEFHEBDBGIIGJAFEGGFHJBIHBICB@EDDFEDFBKACJ@JCKKAKEJACICEBIJEFIICH@J@CCE@EJI@BKEFAGAJKKEDHICC@@@DJEGIHFDHDCJGJECHGCBIHC@K@FEHECEKKJAABFAAFA@EHFBFAEHBFCEFDBDKCB@BFGBBKG@@GKBKJEHI@H@DH@IJ@FFICEDBDJECA@@DKHAIFJII@DDEBI@IGIFJ@@BFC@IHGCJEAG@CAF@CCFEC@AFKDDKKAD@K@HDBDAIDIKCGJJGEECGIIECDGDHHBC@FJDGJJDB@AKBBGEEIFK@D@BCCG@IAEJEECDCFBBE@AK@EAEDGCEKIBDKHICG@DFDDGJGHGDE@CGIEAEEHBKFCBICDGADBHDEABJGHCEIDDJD@BEEJA@JFB@IFGDA@GAGDAEDBDCFGKEJEDDKFCE@FHJIB@JDAEECHBJCDAEFAHBDJC@FH
此外,我在文件中添加了一堆打印语句,这样我就可以看到我的输出是什么,但稍后会被删除。