2012-10-02 129 views
1

我有點卡住了。我如何得到這個工作或有更好的方法?請給出代碼示例。讀取.txt文件並存儲在二維char數組中java

public char[][] charmap = new char[SomeInts.amount][SomeInts.amount]; 
public void loadMap() throws IOException{ 
    BufferedReader in = new BufferedReader(new FileReader("map1.txt")); 
    String line = in.readLine(); 
    while (line != null){ 
     int y = 0; 
     for (int x = 0; x < line.length(); x++){ 

      //Error 
      charmap[x][y] = line[x]; 
      // 
     } 
     y++; 
    } 
} 

回答

4

語法line[x]是爲數組保留的。一個字符串不是一個數組。您可以使用String#charAt method寫:

charmap[x][y] = line.charAt(x); 
+0

謝謝,它解決了錯誤,我的程序現在可以運行。不按預期工作。我會發布更詳細的內容。 –

1

試試這個。

char[][] mapdata = new char[SomeInts.amount][SomeInts.amount]; 

public void loadMap() throws IOException{ 
    BufferedReader in = new BufferedReader(new FileReader("map1.txt")); 
    String line = in.readLine(); 
    ArrayList<String> lines = new ArrayList<String>(); 
    // Load all the lines 
    while (line != null){ 
     lines.add(line); 
    } 
    // Parse the data 
    for (int i = 0; i < lines.size(); i++) { 
     for (int j = 0; j < lines.get(i).length(); j++) { 
      mapdata[j][i] = lines.get(i).charAt(j); 
     } 
    } 
} 

希望這會有所幫助。

相關問題