2013-02-14 2 views
-3

txt 파일의 각 줄에 문자를 삽입하는 방법이 궁금하십니까?txt 파일의 각 줄에 문자를 삽입하는 방법

예를 들어, 내가 txt 파일을 가지고과 같은 라인이 위치 :

text 
text 
text 

내가 선이으로 같은 것을 만들 것 : 나는 시도하고있어

$text 
$text 
$text 

정의는 사전

패키지 org.kodejava.example.io에서 솔루션 파이썬이나 자바 중 하나

감사;

import java.io. *;

public class Root { 
public static void main(String[] args) { 
     File file = new File("C:\\text.txt"); 
     StringBuilder contents = new StringBuilder(); 
     BufferedReader reader = null; 

     try { 
      reader = new BufferedReader(new FileReader(file)); 
      String text = null; 

      // repeat until all lines is read 
      while ((text = reader.readLine()) != null) { 
       contents.append(text) 
         .append(System.getProperty(
           "line.separator")); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       if (reader != null) { 
        reader.close(); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 

     // show file contents here 
     System.out.println(contents.toString()); 
    } 

}

내가 특정 기호를 삽입하기 위해 사용한다 Methos는 어떻게 파일을 읽을 수있는 샘플을 발견했습니다

?

+4

줄 단위로 파일을 읽고 줄에 새 문자를 추가하고 결과를 새 파일에 씁니다. – jtahlborn

+2

먼저 시도해보십시오. 문제가 발생하면 여기로 돌아와서 이유를 물어 보면 도움을받을 수 있습니다. – mgilson

+1

동의 - 어떤 언어를 사용하고 있는지 파악할 수 없다면 누군가가 대신 해주기를 바랄 것입니다. –

답변

1

당신은 다음 파일 A BufferedReader가 (이 방법을 readLine() 제공), 당신은 다음 print()를 사용하여 $ 문자를 쓰기 먼저 PrintWriter 등을 사용하여 다른 파일에 출력을 쓸 수 있습니다 사용하여 라인으로 라인과 읽기 라인을 읽는다면 BufferedReader에서 println()을 사용하십시오.

Java에서 + 연산자를 사용하여 문자열을 연결하는 것은 매우 느립니다. 이 같은

뭔가 (당신이 발견 된 샘플보다 약간 더 간단) 작동합니다 :

try (BufferedReader input = new BufferedReader(new FileReader(new File("inputfile.txt"))); 
PrintWriter output = new PrintWriter(new File("outputfile.txt"))) 
{ 
    String line; 
    while (input.ready() && ((line = input.readLine()) != null)) 
    { 
    output.print("$"); 
    output.println(line); 
    } 
} 
catch (Exception ex) 
{ 
    ex.printStackTrace(); 
} 

위의 예는 프로세스가 완료된 후 스트림을 닫습니다 try 블록에 새로운 자바 7 autoclose feature 사용합니다.

+0

안녕하세요, 고맙습니다. 거의 작동합니다.) 여기 코드를 추가했습니다. 나는 System.out.print ("s") 라인을 넣을 수있다. 하지만 각 줄의 시작 부분에 '$'를 추가하기 위해 루프를 감추는 방법을 모르겠다. – Leo

+1

'System.out.print()'는 콘솔에 출력 할 것이다. 파일로 출력하려면'새로운 PrintWriter (새로운 파일 ("파일명"));'을 만들어야합니다. 루프는'ready()'를 사용하여 BufferedReader 자체에서 수행 될 수 있습니다. 따라서'while (br.ready()) '을하고 그 안에 다음 줄을 읽고,'$'를 인쇄기에 쓰고 방금 읽은 줄을 버퍼링 된 판독기에서 인쇄기에 씁니다. 그래서 단지 3 라인. – jbx

+0

나는 그것이 어떻게 생겼는지에 대한 견본을 넣었습니다. – jbx

1
FileWriter fstream = new FileWriter("fileName"); 
BufferedWriter fbw = new BufferedWriter(fstream); 
while ((text = reader.readLine()) != null) { 
    fbw.write("$" + text+ "\n"); 
} 

위와 같이 루프를 변경하십시오. 시도하십시오.

관련 문제