2014-12-01 4 views
1

내가 데이터를 포함하는 파일에 데이터를 추가하고 싶었 : -java에서 텍스트 파일에 추가하는 올바른 방법은 무엇입니까?

A 
B 
C 
D 
E 

나는 다음과 같은 코드를 작성 : -

import java.io.*; 
public class AddtoFile 
{ 
    public void main() 
    { 
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
     try 
     { 
      FileWriter fw=new FileWriter("Student.txt",true); 
      BufferedWriter bw=new BufferedWriter(fw); 
      for(int i=0;i<5;i++) 
      { 
       System.out.println("Enter Phone numbers"); 
       String phone=br.readLine(); 
       bw.write(phone); 
       bw.newLine(); 
      } 
      bw.close(); 
      fw.close(); 
     }catch(Exception e){System.out.println(e);} 
    } 
} 

그러나 심지어 내가 파일 I을 열 때, 필요한 입력을 제공 한 후 이전 데이터에 아무 것도 추가되지 않았 음을 확인하십시오. 제 컴파일러가 코드에 구문 오류를보고하지 않았기 때문에 제 논리에 실수가 있으면 지적하십시오. 경우 좀 더 내용 는

import java.io.*; 
class WritetoFile 
{ 
    void main()throws IOException 
    { 
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
     try 
     { 
      FileWriter fw=new FileWriter("Student.txt"); 
      BufferedWriter bw=new BufferedWriter(fw); 
      for(int i=0;i<5;i++) 
      { 
       System.out.println("Enter your name"); 
       String name=br.readLine(); 
       bw.write(name); 
       bw.newLine(); 
       } 
       bw.close(); 
       fw.close(); 
      }catch(Exception e){System.out.println(e);} 
     } 
    } 

(나뿐만 아니라 JavaDoc을에서 그런 도움을 얻지 때문에 말해주세요)

+6

이 코드를 어떻게 실행하고 있습니까? 귀하의'main' 메소드에 대한 서명은 일반적인 Java 진입 점에 적합하지 않습니다 ... –

+1

@JonSkeet이 옳습니다 (항상 그렇듯이 ...). 프로그램이 전혀 실행되지 않습니까? – Axel

+0

글쎄 @Axel 당신이 무엇을 요구하는지 알기 위해 필요한 입력을 요청합니다. –

답변

1

main 메서드 서명이 잘못되었습니다. 코드를 실행하려면 String[] 인수가 있어야합니다. 다음과 같이 파일에 추가하기 위해, 당신은 FileWriter 인스턴스를 수정할 수 있습니다

FileWriter fw = new FileWriter("Student.txt", true); // true means append 
+0

설명해주세요. 새로운 File 명령의 사용 –

+0

'FileWriter (File, boolean)'생성자를 사용할 필요가 없습니다.'FileWriter (String, boolean)'도 마찬가지로 작동해야합니다. –

+0

@JonSkeet 맞아, 내가 그리워 :) 업데이트. – manouti

1
(일부 파일에 쓰기의 코드에서 실수도 있습니다)

Files#append()을 사용해야하며 OpenOption 인수에는 StandardOpenOptions.APPEND

0
import java.io.*; 
public class AddtoFile 
{ 
    public void main(String arg[]) 
    { 
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
     try 
     { 
      FileWriter fw=new FileWriter("Student.txt",true); 
      for(int i=0;i<5;i++) 
      { 
       System.out.println("Enter Phone numbers"); 
       String phone=br.readLine(); 
       phone=phone+"\n"; 
       fw.write(phone); 
      } 
      fw.close(); 
     }catch(Exception e){System.out.println(e);} 
    } 
} 

이 잘 작동합니다.

참조 링크 : http://learn2geek.com/file-handling-java/

+0

BufferedWriter가 필요하지 않습니까? @AnkitNanglia –

+0

Nope FileWriter write 메서드가 필요합니다. –

관련 문제