2016-04-07 14 views
0

ファイルを開いて行番号を取得するためにこのコードを取得しましたが、コンテンツがある別のファイルを開く場合は最初のファイルと同じではなく、同じ行番号を見つけて、私はそれをどのようにして最良の方法で行えますか?ここからどこに行くのですか?
私はあなただけの他のファイルを開き、行を読んで、あなたのカウンタ2までカウンタ(カウンタ2)をインクリメントすることができます...行番号と行の内容を見つけ、別のファイルで同じ行番号を開くJAVA

public class c { 

    public static void main(String args[]) { 
     File file =new File("one.txt"); 
     Scanner in = null; 

     try { 
      int counter = 0; 
      in = new Scanner(file); 
      while(in.hasNext()) { 
       counter++; 
       String line=in.nextLine(); 
       if(line.contains("umbrella")) { 
        System.out.println(line + " line: " + counter); 
       } 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

答えて

1

ので、私に簡単に移動してくださいこのサイトへとJavaに新たなんですcounter-Variable(上のコードスニペットから)に到達します。また、ファイルが終了していないかどうかを確認する必要があります。

コードには、あなたの質問ですでに使用したような多くの類似した要素があります。

0

最善の方法は、開発中のコンテキストに依存します。すでにコードで行ったように別のファイルを操作するためにFileクラスとScannerクラスのインスタンスを追加するだけで、すでにコメントに記述することができます。

もう1つの方法は、これを処理するクラスを作成することです。この場合、同じクラスを実行するために必要なファイルの数に制限はありません。

public class FileLineCounter { 

    public FileLineCounter(String filename) 
    { 
    try 
    { 
     f = new File(filename); 
     s = new Scanner(f); 
    } 
    catch(FileNotFoundException ex) 
    { 
     ex.printStackTrace(); 
    } 
} 

public int getLineNumber(String item) 
{ 
    counter = 0; 
    while(s.hasNext()) 
    { 
     counter++; 
     String line = s.nextLine(); 
     if (line.contains(item)) 
     { 
      break; 
     } 
    } 
    return counter; 
} 

    private File f; 
    private Scanner s; 
    private int counter; 
}; 

package FileUtil; 
import FileUtil.FileLineCounter; 

public class Main { 

public static void main(String[] args) 
{ 
    String file1 = "one.txt"; 
    String file2 = "two.txt"; 
    FileLineCounter f1 = new FileLineCounter(file1); 
    FileLineCounter f2 = new FileLineCounter(file2); 

    System.out.println(file1 + " line : " + f1.getLineNumber("umbrella")); 
    System.out.println(file2 + " line : " + f2.getLineNumber("umbrella")); 
} 
} 
関連する問題