2010-04-20 5 views
1

".txt"파일 (예 : filen.txt) 내에서 문자열이나 행을 삭제하고 싶습니다. 예를 들어, 나는 파일에서 이러한 라인이 있습니다Java 프로그래밍에서 파일 (.txt) 내의 문자열을 삭제하는 방법

1JUAN DELACRUZ
2jUan 델라 크루즈
3Juan 델라 크루즈를

그런 다음 제 2 라인 (2jUan dela Cruz), 그래서 "이 .txt 삭제 "파일이 보일 것 같은 :

1JUAN DELACRUZ
3Juan 델라 크루즈

어떻게하면됩니까?

+1

이것 좀보세요 : http : // stackoverflow.com/questions/822150/modify-a-txt-file-in-java –

답변

1

문자열이 포함 된 파일을 모두 가져옵니다. 원하는 것을 제거하십시오. 문자열을 파일에 다시 쓰고 이전에 있던 내용을 모두 제거합니다. 간단합니다.

+0

광석에서 StrignBuffer/Builder를 얻을 수 있습니다. 파일 등 크기가 매우 큰 경우에도 여전히 고려해 보셨나요? 엄청난 양의 정보를 메모리에 저장하는 것이 비효율적이지 않습니까? –

+0

이것은 실제 메모리에 저장할 수있는 파일에 대한 올바른 대답입니다. 할 수없는 파일의 경우 파일의 일부를 버퍼로 읽어 들이고 버퍼에 제거 할 줄이 있는지 확인한 다음 임시 파일에 쓰는 등의 작업을 수행하십시오. 작업이 끝나면 파일 복사/이동/이름 바꾸기 기능을 사용하여 원본 파일을 임시 파일로 대체하십시오. –

+0

-1 줄 단위로 파일을 읽고 (blockwise) 삭제할 줄과 일치하지 않는 줄만 복사하는 것이 좋습니다. – helpermethod

2

1) 파일을 한 줄씩 스캔하고 그 결과를 다른 임시 파일에 씁니다. 줄 내에서 문자열이 발견되면 제거하고 수정 된 줄만 씁니다.

2) 초기 파일을 제거하고 임시 파일의 이름을 초기 파일의 이름으로 바꿉니다.

이것을 달성하려면 File 클래스를 살펴보십시오.

File file = new File("data.txt"); 

그런 다음 예제와 같이 "검사"를 Scanner 클래스를 사용하여 파일 :

Scanner scanner = new Scanner(file); 
    while (scanner.hasNextLine()) { 
     String line = scanner.nextLine(); 
     /* Proccess line */ 
    } 

는, 새로운 파일에 정보를 기록 PrintWriter 클래스를 살펴합니다.

LATER 편집 :

당신이 버퍼의 개념, 당신은 대신 "선"의 데이터의 큰 덩어리를 처리하기 위해, 자사의 read 기능 BufferedReader로 사용할 수 있습니다 편하지 느끼는 경우.

0

파일이 작고 숙제가 아닌 경우 아파치 공유 IO를 가져 와서 파일을 조작하여이를 조작하십시오. 다운로드 :이 단지 문자열로 파일을 읽어 정말 쉬운 http://www.kodejava.org/examples/55.html

0

을하고 귀하의 경우 (삭제할 문자열로 해당 문자열을 분할 : http://www.javadb.com/how-to-read-file-contents-to-string-using-apache-commons-io 작성 방법 : http://commons.apache.org/io/download_io.cgi 는 읽는 방법 "2jUan 델라 크루즈")

이 간단한 코드를 사용하는 문자열로 파일을로드하기 위해 :() this page에 따라

String text = new Scanner(new File("poem.txt")).useDelimiter("\\A").next(); 
String[] Splite= text.split("2jUan dela Cruz"); 
int size= Splite.length; 
String NewText; 

for(i=0; i<size ; i++){ 
    NewText+=Splite[i]; 
} 

// now your NewText String is ready to be written to your File 
관련 문제