2016-12-09 5 views
2

아래와 같이 텍스트 파일을 2D 배열에 저장하려고합니다.텍스트 파일을 2D 배열에 넣기

24 
7 
1 6 
7 15 
13 17 
9 23 
10 21 
13 19 

그리고이 코드를 저장해야합니다. 구문 오류는 없지만 배열에 저장할 수없는 것 같습니다. 이 배열을 단순히 배열에 저장하는 방법을 알아야합니다.

 FileInputStream fStream = new FileInputStream(file); 
     BufferedReader input = new BufferedReader(new InputStreamReader(fStream)); 
     Scanner src = new Scanner(input); 
     ArrayList<Integer> lines = new ArrayList<Integer>(); 
     src.useDelimiter(" "); 

     while(src.hasNextInt()) { 
      lines.add(src.nextInt()); 
     } 
     int[][] fileArray = new int[lines.size()][]; 
     lines.toArray(fileArray); 

고마워요 마이크

+1

방법 논리의 변화에 ​​대한 시도주십시오. 각 행을 String으로 읽고, "" "'값을 int로 변환하고 배열에 추가하십시오. –

답변

2

이가

FileInputStream fStream = new FileInputStream(file); 
    BufferedReader input = new BufferedReader(new InputStreamReader(fStream)); 
    Scanner src = new Scanner(input); 
    ArrayList<ArrayList<Integer>> board = new ArrayList<>(); 

    while(src.hasNextLine()) 
    { 
     String[] line = src.nextLine().split("\\s+"); 
     board.add(new ArrayList<Integer>()); 
     for(String num : line) 
     { 
      if(num.matches("\\d+")) 
       board.get(board.size() - 1).add(Integer.parseInt(num)); 
     } 
    } 

    for(int i = 0; i < board.size(); i++) 
    { 
     for(int j = 0; j < board.get(i).size(); j++) 
      System.out.print(board.get(i).get(j) + " "); 

     System.out.println(); 
    } 
+0

고마워요! 이것은 내가 수정해야했던 유일한 것을 도왔다. 하나 이상의 숫자를 사용하는 숫자 때문에 \\ d에서 \\ d +로 바뀌었다. –

+0

훨씬 좋은 로직 –