2013-08-15 1 views
0

나는이 아마 뭔가 간단한 것을 알고 반복.의 BufferedReader 그러나 나는 내가 잘못 한 일을 찾을 수 없습니다, 잘못

나는 텍스트 파일의 내용을 웹 페이지에서 출력을 비교하고있다. 나는 다음 코드를 가지고 있으며 웹 페이지의 모든 결과에 대해 한 번에 bufferedreader가 반복되는 것처럼 보입니다. 코드와 결과를 게시하면 혼동을 덜 일으킬 것입니다.

코드

String docOne = driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/div[4]/div[2]/div/div/div/div/div[2]/div/div/div/h5")).getAttribute("textContent").toString(); 
String docTwo = driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/div[4]/div[2]/div/div/div/div/div[2]/div/div[2]/div/h5")).getAttribute("textContent").toString(); 
String docThree = driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/div[4]/div[2]/div/div/div/div/div[2]/div/div[3]/div/h5")).getAttribute("textContent").toString(); 
String docFour = driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/div[4]/div[2]/div/div/div/div/div[2]/div/div[4]/div/h5")).getAttribute("textContent").toString(); 
String docFive = driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/div[4]/div[2]/div/div/div/div/div[2]/div/div[5]/div/h5")).getAttribute("textContent").toString(); 
String docSix = driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/div[4]/div[2]/div/div/div/div/div[2]/div/div[6]/div/h5")).getAttribute("textContent").toString(); 
String docSeven = driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/div[4]/div[2]/div/div/div/div/div[2]/div/div[7]/div/h5")).getAttribute("textContent").toString(); 
String docEight = driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/div[4]/div[2]/div/div/div/div/div[2]/div/div[8]/div/h5")).getAttribute("textContent").toString(); 
String docNine = driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/div[4]/div[2]/div/div/div[2]/div/div[2]/div/div/div/h5")).getAttribute("textContent").toString(); 

try (BufferedReader br = new BufferedReader(new FileReader("/Users/vhaislsalisc/Documents/CDWProductionDomainsRequiredDocs.txt"))) { 
    String sCurrentLine; 


    while ((sCurrentLine = br.readLine()) != null) { 

     System.out.println("Webpage: " + docOne + " Required Doc: " + sCurrentLine); 
     System.out.println("Webpage: " + docTwo + " Required Doc: " + sCurrentLine); 
     System.out.println("Webpage: " + docThree + " Required Doc: " + sCurrentLine); 
     System.out.println("Webpage: " + docFour + " Required Doc: " + sCurrentLine); 
     System.out.println("Webpage: " + docFive + " Required Doc: " + sCurrentLine); 
     System.out.println("Webpage: " + docSix + " Required Doc: " + sCurrentLine); 
     System.out.println("Webpage: " + docSeven + " Required Doc: " + sCurrentLine); 
     System.out.println("Webpage: " + docEight + " Required Doc: " + sCurrentLine); 
     System.out.println("Webpage: " + docNine + " Required Doc: " + sCurrentLine); 
    } 
    br.close(); 
} catch (IOException e) { 
    System.err.println("Error: " + e.getMessage()); 
} 

결과 파일의 나머지 부분을 통해

Webpage: Research Request Memo (File Document) Required Doc: Research Request Memo (File Document) 
Webpage: Research Study Institutional Review Board (IRB) Approval Letter (File Document) Required Doc: Research Request Memo (File Document) 
Webpage: Sample Informed Consent and HIPAA Authorization (File Document) Required Doc: Research Request Memo (File Document) 
Webpage: Research and Development (RD) Committee Approval Letter (File Document) Required Doc: Research Request Memo (File Document) 
Webpage: Data Use Agreement (File Document) Required Doc: Research Request Memo (File Document) 
Webpage: IRB Approval of Waiver of HIPAA-Compliant Authorization (File Document) Required Doc: Research Request Memo (File Document) 
Webpage: Research Protocol (File Document) Required Doc: Research Request Memo (File Document) 
Webpage: CDW-Domain Checklist (File Document) Required Doc: Research Request Memo (File Document) 
Webpage: VA Form 9957 (File Document) Required Doc: Research Request Memo (File Document) 
Webpage: Research Request Memo (File Document) Required Doc: Research Study Institutional Review Board (IRB) Approval Letter (File Document) 
Webpage: Research Study Institutional Review Board (IRB) Approval Letter (File Document) Required Doc: Research Study Institutional Review Board (IRB) Approval Letter (File Document) 
Webpage: Sample Informed Consent and HIPAA Authorization (File Document) Required Doc: Research Study Institutional Review Board (IRB) Approval Letter (File Document) 
Webpage: Research and Development (RD) Committee Approval Letter (File Document) Required Doc: Research Study Institutional Review Board (IRB) Approval Letter (File Document) 
Webpage: Data Use Agreement (File Document) Required Doc: Research Study Institutional Review Board (IRB) Approval Letter (File Document) 
Webpage: IRB Approval of Waiver of HIPAA-Compliant Authorization (File Document) Required Doc: Research Study Institutional Review Board (IRB) Approval Letter (File Document) 
Webpage: Research Protocol (File Document) Required Doc: Research Study Institutional Review Board (IRB) Approval Letter (File Document) 
Webpage: CDW-Domain Checklist (File Document) Required Doc: Research Study Institutional Review Board (IRB) Approval Letter (File Document) 
Webpage: VA Form 9957 (File Document) Required Doc: Research Study Institutional Review Board (IRB) Approval Letter (File Document) 

등은

그래서 그냥 내가 무슨 짓을했는지 멍청한 놈 일이 궁금해하는 방법 나는 그것을 고칠 수있다. e 파일을 한 번에 모두 웹 페이지에서 오는 것과 일치합니까?

+2

당신은 br.close'에 대한 호출이 필요하지 않습니다()'는'try' 문에 인수를 전달 (시도 -과 - 자원을 사용하는 한,'try' 블록의 끝에서), 자동으로'br'을 닫습니다. 그는 시도 --자원이 자바 7의 새로운 기능, 사용하고, 그것은 자동으로'위기 일발()', 그래서') ('가까이에 명시 적으로 통화를 보류 할 필요가 없다 – gparyani

답변

2

그것은 텍스트 파일의 각 줄에 대한 docNine하는 docOne에서 모든 웹 페이지를 통해 간다. 나는. 9 개의 파일을 모두 1 행, 2 행 등으로 비교합니다.

텍스트 파일에서 읽은 첫 번째 2 줄을 붙여 넣었으므로 첫 번째 2 개 웹 페이지와 일치하므로 원하는 내용을 가정합니다 각 줄을 한 번 읽고 한 웹 페이지 만 비교하십시오. 당신이 다음해야 할 것은 단순히 while 루프를 잃고 각 결과를 표시 한 후 작성한 Readline를 호출 할 수 있습니다 :

코드가 훨씬 더 힘들어 이미보다 읽을 수 있도록 것입니다 그러나
sCurrentLine = br.readLine(); 
    System.out.println("Webpage: " + docOne + " Required Doc: " + sCurrentLine); 
    sCurrentLine = br.readLine(); 
    System.out.println("Webpage: " + docTwo + " Required Doc: " + sCurrentLine); 

. Collection (또는 배열)을 대신 사용해보십시오.

[편집] gparyani의 제안에 따라, 당신은 명시 적으로 br.close()를 호출 할 필요가 없습니다. 여기 세부 http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

+1

. 리소스가있는 try-with-resources 이전 버전에서는 명시 적으로 호출해야했지만 지금은 그렇지 않습니다. – gparyani

+0

@ gparyani 감사합니다. 알아 둘만한. – blgt

관련 문제