2016-07-14 6 views
-1

プログラムを作成して、異なる入力(整数)値の結果を生成する必要があります。私はいくつかの整数ファイルをいくつかのテキストファイルから読み込み、これらの変数に格納する必要があります。Javaのテキストファイルから複数の入力を取ります

  • 選択各ファイルに
  • numofNodes
  • numofPoints

を例えば、上記の変数の1つに割り当てされなければならない複数の番号があるかもしれません:

まずテキストファイルが含まれています最初の変数と他の2つの変数の5つの値は、次のように別々の行に1つの値を持ちます。

1 2 3 4 5 
60 
50 

2番目のテキストファイルには、第二の変数と他の二つの変数のための5つの値は、以下のように別々の行にある値を持っている含まれています

1 
40 50 60 70 80 
50 

など..

を私が読んでどのように見当がつかないそれらはテキストファイルからのものです。 助けていただければ幸いです。文字列配列で

public static void main(String[] args)throws InterruptedException { 

    // how to read numbers from different text files here 
    // and store them in these variables to call func method? 
    // int choice = ? 
    // int numofNode = ? 
    // int numofPoint = ? 

    path ob=new path(choice,numofNode,numofPoint); 
    ob.func(); 

} 
+0

読む(https://www.mkyong.com/java/how-to-read-file-from-java-bufferedreader-example/)[読み取り]および[書き込み](のhttp:// WWWを.Mkyong.com/java/how-to-file-in-java-bufferedwriter-example /) – pahan

+0

@ TheLostMind、編集された質問 – Tina

答えて

2

プットファイルのパス:

は、ここに私のメインクラスです。ファイルコンテンツを読み取るためのいくつかのメソッドを持つjava.util.Scannerクラスのインスタンスを作成してファイルを読み取ることができます。

あなたが必要とするのは、forループとfor-eachループを使用してファイルをループして読み込むことだけです。

ここに私が助けてくれるいくつかのコードがあります!

/** 
* converts array of string numbers to array of integer numbers. 
* 
* @param numbers is array of strings 
* @return an integer array which is parsed from <b>numbers</b> 
* 
*/ 
static int[] parseInt(String[] numbers) { 
    return Arrays.stream(numbers).mapToInt(Integer::parseInt).toArray(); 
} 

public static void main(String[] args) { 

    // put input files path here 
    String[] name_and_path_of_files = { 
     "C:\\Users\\YOUR_USER\\Desktop\\input_1.txt", 
     "C:\\Users\\YOUR_USER\\Desktop\\input_2.txt" 
    }; 

    // file reader 
    Scanner inputFileReader = null; 
    try { 

     // for all files 
     for (String fileInfo : name_and_path_of_files) { 

      // create reader object with file info 
      inputFileReader = new Scanner(new File(fileInfo)); 

      int line_index = 0; 

      int choices[] = null; 
      int numofNodes[] = null; 
      int numofPoints[] = null; 

      // trying to read file content 
      while (inputFileReader.hasNext()) { 
       String separated_numbers[] = inputFileReader.nextLine().split(" "); 
       switch (line_index) { 
        case 0: 
         choices = parseInt(separated_numbers); 
         break; 
        case 1: 
         numofNodes = parseInt(separated_numbers); 
         break; 
        case 2: 
         numofPoints = parseInt(separated_numbers); 
         break; 
       } 
       line_index++; 
      } 

      for (int choice : choices) { 
       for (int numofPoint : numofPoints) { 
        for (int numofNode : numofNodes) { 
         path ob = new path(choice, numofNode, numofPoint); 
         ob.func(); 
        } 
       } 
      } 
     } 
    } catch (Exception e) { 
     System.out.println("Error: " + e.getMessage()); 
    } finally { 
     if (inputFileReader != null) { 
      inputFileReader.close(); 
     } 
    } 
} 
+0

@Tinaは私の答えをチェックします。 –

+0

ありがとう....その作業... – Tina

関連する問題