private static int[][] FileToWeightedGraphArray(String dat) {
    int[][] A = null;
    FileInputStream fis = null;
    try {
      fis = new FileInputStream(dat);
    } catch (Exception e) {
      System.out.println(dat + " konnte nicht geoeffnet werden");
      System.out.println(e.getMessage());
    }
    try {
      InputStreamReader isr = new InputStreamReader(fis);
      BufferedReader br = new BufferedReader(isr);

      // Knotenanzahl lesen
      String einZeile;
      einZeile = br.readLine();
      int n = new Integer(einZeile);

      // Kantenanzahl lesen
      einZeile = br.readLine();
      int m = new Integer(einZeile);
      A = new int[m + 1][3];

      // Knoten- und Kantenanzahl -> Array
      A[0][0] = n;
      A[0][1] = m;

      // Kanten lesen
      for (int i = 1; i <= m; i++) {
        einZeile = br.readLine();
        int sepIndex1 = einZeile.indexOf(' ');
        int sepIndex2 = einZeile.indexOf(' ', sepIndex1 + 1);
        String vStr = einZeile.substring(0, sepIndex1);
        String uStr = einZeile.substring(sepIndex1 + 1, sepIndex2);
        String wStr = einZeile.substring(sepIndex2 + 1, einZeile.length());
        int v = new Integer(vStr);
        int u = new Integer(uStr);
        int w = new Integer(wStr);
        if (!(u >= 0 && u < n && v >= 0 && v < n)) {
          throw new Exception("Falsche Knotennummer");
        }
        A[i][0] = v;
        A[i][1] = u;
        A[i][2] = w;
      }
    } catch (Exception e) {
      e.printStackTrace();
      System.out.println("Einlesen nicht erfolgreich");
      System.out.println(e.getMessage());
    }

    return A;
  }