2017-02-08 64 views
-1

如何將僅包含char的文本文件中的數據讀入僅使用java.io.File,Scanner和文件未找到異常的2d數組中?將文件讀取爲2d字符數組

這裏是我試圖使文件讀取到2D數組的方法。

public AsciiArt(String filename, int nrRow, int nrCol){ 
    this.nrRow = nrRow; 
    this.nrCol = nrCol; 

    image = new char [nrRow][nrCol]; 

    try{ 
     input = new Scanner(filename); 

     while(input.hasNext()){ 

     } 
    } 
} 

回答

1

確保您正在導入java.io.*(或您需要的特定類,如果這是您想要的)以包含FileNotFoundException類。由於沒有指定如何精確解析文件,因此顯示如何填充二維數組有點困難。但是這個實現使用了Scanner,File和FileNotFoundException。

public AsciiArt(String filename, int nrRow, int nrCol){ 
    this.nrRow = nrRow; 
    this.nrCol = nrCol; 
    image = new char[nrRow][nrCol]; 

    try{ 
     Scanner input = new Scanner(new File(filename)); 

     int row = 0; 
     int column = 0; 

     while(input.hasNext()){ 
      String c = input.next(); 
      image[row][column] = c.charAt(0); 

      column++; 

      // handle when to go to next row 
     } 

     input.close(); 
    } catch (FileNotFoundException e) { 
     System.out.println("File not found"); 
     // handle it 
    } 
} 
+0

謝謝你,這有助於慢跑我的記憶。我一直在傾訴不同的代碼,有時我忘了。 –

0

這樣做將是一個粗略的辦法:

File inputFile = new File("path.to.file"); 
    char[][] image = new char[200][20]; 
    InputStream in = new FileInputStream(inputFile); 
    int read = -1; 
    int x = 0, y = 0; 
    while ((read = in.read()) != -1 && x < image.length) { 
     image[x][y] = (char) read; 
     y++; 
     if (y == image[x].length) { 
      y = 0; 
      x++; 
     } 
    } 
    in.close(); 

但即時通訊肯定還有其他的方法這將是更好的,更有效的,但你的原則。

相關問題