Мое требование пришло, когда я занимался шахматной задачей, в которой значения 8X8 были заданы через System.in. Я тестировал его и все время выдавал 64 материала, что было довольно сложно. Теперь я хотел сохранить то же самое в текстовом файле, прочитать его и сохранить в массиве символов. Пожалуйста, помогите мне сделать это. Есть несколько способов, которые просто читают и отображают содержимое файла, или мы можем преобразовать в одномерный массив символов. Но мне было интересно, что его можно напрямую преобразовать из StringBuilder в двумерный массив символов !!!! Вот что я попробовал.
StringBuilder c = new StringBuilder();
File f = new File("file\\input.txt");
FileInputStream br = new FileInputStream(f);
int str;
while ((str = br.read()) != -1) {
c.append((char) str);
}
br.close();
System.out.println(c);
int strBegin = 0;
for (int i = 0; i < input.length; i++) {
for (int j = 0; j < input.length; j++) {
input[i][j] = c.substring(strBegin, strBegin + 1).toCharArray()[0];
strBegin++;
}
}
for (int i = 0; i < input.length; i++) {
for (int j = 0; j < input.length; j++) {
System.out.print(input[i][j] + " ");
}
System.out.println();
}
Здесь содержимое файла input.txt:
2345678
1 345678
12 45678
123 5678
1234 678
12345 78
123456 8
1234567
Примечание. Существует диагональное пространство, которое также должно быть сохранено вмассив.
Когда я запускаю код, я получаю это:
2345678
1 345678
12 45678
123 5678
1234 678
12345 78
123456 8
1234567
2 3 4 5 6 7 8
1 3 4 5 6
8
1 2 4
6 7 8
1 2
5 6 7 8
1 2 3 4 6 7 8
1 2 3 4 5
8
1 2 3 4