Проблемы с использованием Android Scanner+BufferedReader

Я работал над адаптацией кода из существующего Java-проекта в среде Android.

Я загружаю карту из текстового файла целых чисел, которые соответствуют листу спрайта.

e.g. 0=grass 1=wall

0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 0 0

-

это было ранее сделано с помощью этого: (сканер и буферизованный ридер)

 mapData = new Scanner(new BufferedReader(new FileReader(fileName)));
  mapData.next();
  for (int i = 0; i < 3; i++) {
    for (int y = 0; y < 30; y++) {
      for (int x = 0; x < 50; x++) {
        map[i][x][y] = mapData.nextInt();
      }
    }
    mapData.next();
  }

-

Я изо всех сил пытался приспособить это в последние пару дней, в состоянии, когда он работает, но мне нужно 5 минут, чтобы сделать работу за 1 секунду.

            mapData = new Scanner(new BufferedReader(new InputStreamReader(context.getResources().openRawResource(map1))));
        mapData.next();
        for (int i = 0; i < 3; i++) {
            for (int y = 0; y < 30; y++) {
                for (int x = 0; x < 50; x++) {
                    map[i][x][y] = mapData.nextInt();
                }
            }
            mapData.next();
        }

(map1 - это файл.txt, переданный другим классом)

Что я здесь делаю не так или какие другие методы мне следует использовать для выполнения этой задачи?

Спасибо Линдон

1 ответ

Решение

Кажется, я нашел какое-то решение этой проблемы.

Замена

map[i][x][y] = mapData.nextInt();

С:

map[i][x][y] = Integer.parseInt(mapData.next());

Сделаны огромные исправления скорости /

Другие вопросы по тегам