2013-02-25 2 views
0

PrintWriter를 사용하여 txt 파일에 쓰기. 하지만 이제는 문제가 생겼습니다. 몇 줄을 쓴 후에 상위 줄에서 쓸 수 있습니까? 예를 들어, 다음과 같이 쓸 수 있습니다.Java에서 PrintWriter를 사용하여 위에서 다시 쓰는 방법은 무엇입니까?

PrintWriter out = new PrintWriter("result.txt"); 
out.print("first line"); 
out.print("second line"); 

그런 다음 첫 번째 줄부터 다시 쓸 수 있습니까? 그래서 내가 좋아하는 첫 번째 행하기 전에 문자열의 맨 = "외형"를 쓸 수 있습니다 다음

문제가
top line 
first line 
second line 

가, 내가 두 번째 ""외형 "를 작성하고 후에 문자열 상단의 내용을 얻을 수 있습니다 선". 파일의 처음 부분에 어떻게 쓸 수 있습니까?

감사합니다.

+2

프로그램 논리를 변경하십시오. 맨 위 줄을 계산 한 다음 작성하십시오. 다음 두 줄을 쓴 후에야 첫 번째 줄만 계산할 수있는 이유는 모르겠다. 처리 할 수없는 경우 코드의 관련 부분을 게시하십시오. –

+0

사실, 시작점에서 끝점까지 경로를 찾기 위해 검색 알고리즘을 수행해야합니다. 그러나 result.txt를 사용하려면 먼저 경로를 표시해야합니다. 그런 다음 경로를 찾는 과정을 보여 주어야합니다. 불가능하기 때문에 최종 결과를 발견하기 전에 보여줄 수 있습니다. – lkkeepmoving

+0

먼저 StringBuilder에 넣은 다음 경로를 작성한 다음 StringBuilder 내용을 작성하십시오. –

답변

1

간단한 방법은 전체 파일을 문자열로 읽은 다음 미리 수정 선을 시작 부분에 추가하고 PrintWriter를 사용하여 문자열 내용으로 파일의 내용을 덮어 쓰면됩니다 목적. 정확히 원하는 것은 아니지만 똑같은 효과가 있습니다. :)

+0

예. 고맙습니다. – lkkeepmoving

+0

미래의 독자를 위해 가장 유용한 답을 올바른 것으로 표시하는 것을 기억하십시오 :) – christopher

0

RandomAccessFile 클래스를 사용하고 seek 메서드를 사용하지만 맨 위에 쓰면 줄이 삽입되지 않지만 덮어 쓰게됩니다. 네가 원하는 게 아니야. 나는 JB Nizet 주석에 동의합니다. 가장 좋은 것은 먼저 계산 한 다음 작성하는 것입니다.

첫 번째 줄의 크기를 알고 있다면 'XXXXXXXXXXXXXXX'라고 써서 다른 줄을 작성한 후 맨 위로 돌아가서 같은 줄의 문자로 바꾸십시오. 가능하지만 추천하지는 않습니다.

+0

죄송합니다. 첫 줄의 크기를 알 수 없습니다. 내 문제는 JB Nizet에 대한 답장에서 찾을 수 있습니다. 그것은 그렇게 쉬운 것 같지 않습니다 ... – lkkeepmoving