2011-09-27 82 views
0

這實際上是我在這裏的第一篇文章。我並不知道這個網站,我潛藏在問題的周圍,當然我想繼續這個地方。查找連接組件並讀取鄰接矩陣

我在計算機科學的高年級,但我的編程技能不是很好,這讓我感到非常失望。

不管怎麼說,我有一個項目應該在星期五,我一直在努力,自從週六開始,我一直在抨擊我的頭,沒有取得進展。

我需要在圖中找到連接的組件,並從文件中讀取一個鄰接矩陣。

我第一次嘗試在Python中,使用igraph python庫,但我只是保持系統錯誤。因此,在嘗試解決這個問題的兩天後,我放棄了,並轉移到了Java嘗試讀取數組的位置。

這是我迄今爲止的最新代碼,並且我正在嘗試google找到最好的答案。現在我只是試圖從文件中讀取數據,並將這些值放入我的二維數組中。我評論了大部分內容,因爲我試圖弄清楚我做錯了什麼。

package javaapplication1; 
import java.io.*; 

import java.util.Scanner; 
import tio.*; 


public class JavaApplication1 { 


public static void adjMatrix() throws FileNotFoundException, IOException{ 
    int i, j, n = 20; 
    int[][]array = new int[n][n]; 
    String file = ("adjmatrix.txt"); 

    BufferedReader in = new BufferedReader(new FileReader(file)); 
    System.out.println(in.readLine()); 
    in.close(); 
    /* 
    while(in.hasMoreElements()){ 
     for (i = 0; i < n; i++){ 
      for (j = 0; j < n; j++){ 
      array[i][j] = in.readInt(); 
      } // end inner for  
     } // end outer for 
    } 

    //Print array 
    System.out.println("Here is the matrix: "); 
    for (i = 0; i < n; i++){ 
     for (j = 0; j < n; j++){ 
      System.out.print(array[i][j]); 
     } // end innerfor 
    } //end outerfor 
    */ 





} // endclass 



/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) 
    throws IOException{ 
    adjMatrix(); 
} // end main 
} // end class 

錯誤: 異常線程 「main」 java.io.FileNotFoundException:adjmatrix.txt

在java.io.FileInputStream.open(系統找不到指定的文件) (本機方法) 在java.io.FileInputStream中。(FileInputStream.java:138) 在java.io.FileInputStream中。(FileInputStream.java:97) 在java.io.FileReader。(FileReader.java:58) 在javaapplication1.JavaApplication1.adjMatrix(JavaApplication1.jav一:26) 在javaapplication1.JavaApplication1.main(JavaApplication1.java:60) Java結果:1個 BUILD SUCCESSFUL(總時間:0秒)

+0

'adjmatrix.txt'文件是什麼樣的?你得到什麼問題? – BlackJack

+0

它只是將自己路由到catch例外。 adjmatrix.txt = http://www.cs.plattsburgh.edu/~salvador/csc321_F11/hw/adjacency_matrix.txt – envinyater

+0

不能真正幫助,因爲我不知道你的'ReadInput'類是如何。 'hasMoreElements()'只適用於枚舉器,所以這可能是一個問題。嘗試使用'print()'來查看你是否正確地獲取值,或者使用調試器來查看函數跟蹤。 – BlackJack

回答

0

當你試圖打開一個文件,而不直接路徑,Java會嘗試從相對路徑中解析它。在這裏,由於您只需放置「adjmatrix.txt」,它假定文本文件與您執行的主要方法(包JavaApplication1中的JavaApplication1)的類文件位於同一目錄中。您應該將文本文件移動到類文件旁邊的包中,或者像Kevin所說的那樣添加更具體的路徑名。