2011-09-27 53 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所说的那样添加更具体的路径名。