2017-05-15 3 views
-1

여러 비슷한 엔티티 (아래 참조)가 들어있는 .txt 파일을 읽으려고합니다. 작성 될 오브젝트의 인스턴스를 나타내는 태그는 "TYPE"입니다. 모든 가능한 시퀀스에 대해이 작업을 수행해야합니다. "TYPE"태그를 찾을 때까지 줄 단위로 파일을 읽은 다음 다른 줄을 읽으려고 엔티티의 시작 부분으로 돌아갈 수있는 방법이 있습니까?자바의 텍스트 파일에서 행을 읽어들입니다.

CONTRACT_LIST 
{ 
CONTRACT 
{ 
TIME_SPENT *********** 
TYPE ************* 
. 
. 
. 
. 
PAYMENT_METHOD *** 
DISCOUNT ***** 
} 
} 

Im은 BufferedReader에서 FileReader를 사용합니다. 미리 감사드립니다.

+3

완전히 잘못된 접근. 왼쪽에서 오른쪽으로 입력을 파싱해야합니다. 당신의 방법은 대단히 비효율적입니다. – EJP

+0

@EJP 팁 주셔서 감사합니다. 어떻게 이뤄지나요? – tritSoS

답변

0

당신은 ((つ ◕_◕) つ 매우 피곤)

1

자바를 사용하는 경우 작동이
`

List<String> l = new ArrayList<>(); 
String line; 
BufferedReader buffer = new BufferedReader(new InputStreamReader(yourInputstream)); 
line= buffer.readLine(); 
l.add(line); 

while (line!=null && !line.equals("TYPE")){ 

    line= buffer.readLine(); 
    l.add(line); 
} 

` 보장과 같은 목록에있는 모든 저장할 수 8, 당신은 사용할 수 있습니다 Files.readAllLines

예 :

List<String> lines = Files.readAllLines(Paths.get("file.txt"), Charset.forName("UTF-8")); 

    for(String line : lines) { 
     if(line.contains("TYPE")) { 
      //Do your Thing 
     } 
    }