私はtxtファイルを(別のマスターtxtファイルから)読み取り、一連の文字(@-K)である文字列を取得し、文字列内の文字のASCII値を2次元配列に入力するプログラムを作成しています. これで、2 次元配列の作成とファイルの読み取りに成功しました。問題は、私の配列が文字列ファイルの最初の文字によってのみ取り込まれており、ファイル全体を通過していないことです。ファイルを読み込んで適切に入力する必要があると思われる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
また、ファイルに一連の印刷ステートメントを追加して、出力がどうなるかを確認できるようにしましたが、後で取り出されます。