2015-01-28 4 views
-1

텍스트 파일에 텍스트를 쓰고 해당 텍스트를 읽고 Console에서 인쇄해야한다는 기본 요구 사항이 있습니다.Java에서 FileWriter 및 BufferedWriter를 사용하여 텍스트 파일에 내용을 쓰는 방법

더 나은 접근 방법은 무엇입니까? BufferedReader 나 BufferedWriter보다 간단한 텍스트를 쓰거나 읽는 것보다 성능이나 사용면에서 더 나은 점이 있습니까?

public class FileReadWrite 
{ 
    public static void main(String[] args) throws IOException 
    { 
     File objFile=new File("SampFile.txt"); 

     if(!objFile.exists()) 
      objFile.createNewFile(); 

     FileReader objFR=new FileReader(objFile); 
     BufferedReader objBR=new BufferedReader(objFR); 

     FileWriter objFW=new FileWriter(objFile); 
     BufferedWriter objBW=new BufferedWriter(objFW); 


     objBW.write("Hello World!!!"); 
     objBW.write("How Are you"); 
     objBW.close(); 

     String strContent; 
     while((strContent=objBR.readLine())!=null) 
      System.out.println(objBR.readLine()); 

     objBR.close(); 
    } 
} 
+4

당신이 더 좋은 방법이 무엇을 의미합니까

사람은 아래 코드 aswell를 작성하는 더 좋은 방법을 제안 할 수 있습니까? 귀하의 요구 사항은 무엇입니까? 현재 접근법에 직면 해있는 데 문제가 있습니까? –

+0

위의 코드는 콘솔에 텍스트를 인쇄하지 않지만 파일이 만들어지고 텍스트가 해당 파일에 쓰여집니다. readLine 메서드가 텍스트를 읽고 콘솔에 인쇄하지 않는 이유는 무엇입니까? – Uday

+0

질문에 문제를 추가해야합니다 (귀하의 의견은 질문에 포함되어야합니다). – Mnementh

답변

2

당신이 당신의 while 루프에서 읽고있는 문자열을 인쇄 해보십시오 :

while((strContent=objBR.readLine())!=null) 
     System.out.println(strContent); 
+0

그 var에 대해 잊어 버렸습니다. 인쇄 변수가 내 문제를 해결했습니다. 하지만 파일에 내용을 쓰려면 FileWriter와 BufferedWrite를 모두 사용해야합니까? BufferedWriter가 File 객체를 직접 지원하지 않는 이유는 무엇입니까? 위의 코드가 더 좋은 다른 스트림 또는 메서드가 더 나은 수행 있습니까? – Uday

+0

아니요 FileWriter도 단독으로 사용할 수 있습니다. 당신이 버퍼링 된 글을 쓰지 않는 이런 식으로 생각했습니다. 따라서 for 루프를 100 회 쓰면 하드 디스크에 100 번 액세스 할 수 있습니다. 문제가 생기지 않는다면 해결 된 질문을 선택하십시오. – maffelbaffel

관련 문제