2016-11-23 2 views
0

Я пытаюсь импортировать похож на этотСохранение целых чисел из файла в 2D массив

5 5 
1 1 
3 3 
1 1 1 1 1 
1 0 1 0 1 
1 0 1 0 1 
1 0 0 0 1 
1 1 1 1 1 

файлы в 2D массив, но я с трудом, это мой код до сих пор, что не делает ничего, там Арен» t синтаксические ошибки, поэтому я не получаю никаких ошибок, кроме пустой консоли, и я не знаю, что я сделал неправильно. Размер массива - это первые 2 числа внутри файла.

package main; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 

public class oboroten { 
public static void main(String[] args) { 
    int x, y; 
    x = y = 0; 
    int[][] maze = new int[x][y]; 
    try { 
     Scanner reader = new Scanner(new File("C:\\Users\\User\\Desktop\\mazes\\input.txt")); 
     x = reader.nextInt(); 
     y = reader.nextInt(); 
     for (int i = 0; i < x; i++){ 
      for (int j = 0; j < y; j++){ 
       maze[i][j] = reader.nextInt(); 
       System.out.println(maze[i][j]); 
      } 
     }  
     reader.close(); 
    } catch (FileNotFoundException e1) { 
     System.out.println("Problem with the file"); 
     e1.printStackTrace(); 
    } 
}} 
+1

'ИНТ [] [] лабиринт = новый INT [х] [у];' установить размер вашего массива 0. удивление, почему вы не получите outofbounds ошибки – XtremeBaumer

+1

Поскольку ' для (... i Gendarme

ответ

0

Вы начинаете массив с размером 0. Таким образом, там ничего не будет.

Вы должны указать массив после, вы читаете файл и получаете размеры. Попробуйте это:

public static void main(String[] args) { 
    int x, y; 
    int[][] maze; 
    try { 
     Scanner reader = new Scanner(new File("C:\\Users\\User\\Desktop\\mazes\\input.txt")); 
     x=reader.nextInt(); 
     y=reader.nextInt(); 
     maze = new int[x][y]; 
     for (int i=0; i<x; i++){ 
      for (int j=0; j<y; j++){ 
       maze[i][j]=reader.nextInt(); 
       System.out.println(maze[i][j]); 
      } 
     }  
     reader.close(); 
    } catch (FileNotFoundException e1) { 
     System.out.println("Problem with the file"); 
     e1.printStackTrace(); 
    } 
} 
+0

x и y останется 0, если reader.nextInt() возвращает 0; Если файл начинается с 0 0 – Eritrean

+0

Почему файл должен начинаться с '0 0'? @Eritrean – Gendarme

+0

@ Gendarme Почему нет? – Eritrean

Смежные вопросы