2011-06-14 2 views
0

기본적으로 특정 줄이 이미 있는지 여부에 따라 .txt 파일에 추가하려고합니다.Java - 모든 행의 기존 텍스트에 대해 .txt 확인.

e.e. 이미 존재하지 않으면 .txt 파일에 해당 행을 추가하십시오. .txt 파일에 줄을 추가하지 마십시오.

는 모든 라인은 혼자

일예로 스탠드

하지 하나, 둘, 셋 등

내가 작성한 Readline (사용의 생각)하지만 그것의 끝을 정의하는 것 거기에 휴식 시간이있을 때 줄이 있습니다. 이 메소드는 어떤 인자 (예 : 줄 번호)도 취하지 않으므로 나는 꽤 단명합니다 : /.

모든 그는

+0

중단을 제외하고 줄 끝을 어떻게 정의합니까? – Paul

답변

0

readLine() 메서드를 사용하여 파일의 각 줄을 읽고 원하는 텍스트를 찾을 수 있습니다. 내의 readLine()를위한 Javadoc 가입일

:

텍스트의 라인이 캐리지 리턴 문자 ('\ r')와, 개행 문자 ('\ n')에서 종료하는 캐리지 리턴 문자 다음에 개행 문자 또는 파일 끝에 이옵니다.

예상되는 텍스트를 찾을 수없는 경우 쓰기 방법 중 하나 인 RandomAccessFile을 사용할 수 있습니다. writeUTF() 또는 writeBytes()을 사용하여 텍스트 줄을 파일에 추가하십시오.

+0

하지만 내가 읽었을 때 readLine() 첫 번째 줄을 읽지 않고 끝내겠습니까? –

+0

기억 : 라인이 같다 : 한 이 세 등 내가 이해할 수있는 한, 줄 바꿈이있을 때마다 검색이 중지됩니다. readLine()을 사용할 줄을 어떻게 지정합니까? 이 메서드는 인수를 사용하지 않습니다. 입력 해 주셔서 감사합니다. :) –

+0

Aaah ... 방금 ​​연결 한 javadoc을 읽었습니다. readLine()이 다음 행을 읽는 것 같습니다. 즉, 스트림이 동일한 스트림 (예 : 스트림의 for 루프에있을 수 있는가?)에 상관없이 매번 다음 라인을 호출 할 것인가? –

0

당신은 기본적으로 먼저 당신이 찾고있는 단어의 일부 또는 전체 파일을 스캔 한 후 존재하지 않는 경우 단어를 추가해야합니다.

File theFile = ... 
String theWord = ... 

String text = Files.toString(theFile, "utf-8"); 
if (!text.contains(theWord)) { 
    Files.append(theWord, theFile, "utf-8") 
} 
+0

이 경우 제 3 자 라이브러리를 사용할 수 없게 될까봐 두렵습니다 :/입력에 대한 감사합니다. –

+0

@ 마이크, 접근 방식은 여전히 ​​동일합니다. 좀 더 자세한 정보 만 입력하십시오. –

0

당신이 루프를 사용하고 라인으로 텍스트 파일 행을 읽지 않는 이유 : 당신이 Guava을 시도 할 수 lib에는

당신은 당신이 제 3 자 괜찮다 그러나 경우, readLine()를 사용할 수 있을까? 루프 다음에 줄을 찾지 못하면 파일 끝에 추가하십시오.

관련 문제