0

我需要通過名爲archive.txt的.txt文件循環,直到文檔中的所有數據都耗盡。將數據從文件轉換爲多維數組java

我試圖返回一個多維數組中的數據,該數組爲每個第八個數據點創建一個新行。

到目前爲止,我設法遍歷數據,但似乎無法組織它。

下面是隻能吐出每行數據線的功能。從文本文件(archive.txt)

15-Sep-2015 2 1 12 N MT230N 617 CMcgee 

所有這些的結果第一8個數據點的

private void findContract() { 

Scanner input = null; // this is to keep the compiler happy 
// as the object initialisation is in a separate block            
try { 

    input = new Scanner(new File("archive.txt")); 

} catch (FileNotFoundException e) { 
    System.out.println("File doesn't exist"); 
    System.exit(1); 
} 

while (input.hasNext()) { 
    String dDate = input.next(); 
    System.out.println(dDate); 
} 

input.close(); 
} 

實施例是我需要能夠選擇由行&列的數據點。

如果有人能告訴我正確的方式,將非常感激。我已經嘗試了幾種方法&上述函數是它顯示文件中數據的最後一個實例。

+0

閱讀整行並使用'String#split'? – MadProgrammer

+0

我不知道該怎麼做,或者我該如何讓它重複每第八個數據點。 有沒有什麼方法可以讓我看到我需要在while循環中放置什麼? :) – sublimetim

+0

[java string split](https://www.google.com.au/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#safe=off&q=java%20string%20split) – MadProgrammer

回答

0

使用java 8,您可以使用它作爲您可能使用的任何分隔符。

public static String[][] fileToMatriz(String file, String delimiter) throws IOException { 
     try (Stream<String> stream = Files.lines(Paths.get(file))) { 
      return stream.map(s -> s.split(delimiter)) 
         .toArray(String[][]::new); 
     } 
    } 
+0

謝謝你,我已經嘗試了上述兩者之間,而我得到這個錯誤'線程中的異常'主要「java.lang.RuntimeException:不可編譯的源代碼 - 非法開始表達式 \t at contractmanager.Menu.findContract(Menu。的java:106) \t在contractmanager.Menu.performAction(Menu.java:69) \t在contractmanager.Menu.runMenu(Menu.java:26) \t在contractmanager.Menu.main(Menu.java:19) Java結果:1' – sublimetim