2016-04-07 23 views
0

Bir dosyayı açmak ve satır numarasını almak için bu kodu aldım, ancak içeriğin bulunduğu başka bir dosya açmak istiyorsanız ilk dosya ile aynı değil ve aynı satır numarasını bulmak, bunu en iyi şekilde nasıl yapabilirim? Buradan nereye giderim?
yüzden bana nazik lütfen bu siteye ve Java yeniyim ...Bir satırın satır numarasını ve içeriğini bulun ve ardından başka bir dosyada aynı satır numarasını bulun 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(); 
     } 
    } 
} 

cevap

1

Sadece başka bir dosyayı açın ve satırları okuyun ve COUNTER2 kadar bir sayaç (COUNTER2) ​​artırır olabilir karşı-Değişkeninize (yukarıda kod-snippetinden) ulaşır. Dosyanın bitmediğini de farketmelisiniz.

Kod, sorunuzda zaten kullandığınız gibi birçok benzer Öğeye sahiptir.

0

En iyi yol, geliştirdiğiniz içeriğe bağlı olacaktır. Kodunuzda zaten yaptığınız ve zaten yorumda bahsedilen farklı bir dosya üzerinde çalışmak için ek Dosya ve Tarayıcı sınıfları örnekleri oluşturabilirsiniz.

Bunu sizin için işleyecek bir sınıf oluşturmak başka bir yöntem olacaktır. Bu durumda, bu sınıfa ulaşmak için ihtiyacınız olan sınırsız sayıda dosya için kullanabilirsiniz.

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")); 
} 
} 
İlgili konular