문제

아래 코드를 살펴보십시오.

// A.class
File file = new File("blah.txt");
FileWriter fileWriter = new FileWriter(file);
PrintWriter printWriter = new PrintWriter(fileWriter);

// B.class
File file = new File("blah.txt");
FileWriter fileWriter = new FileWriter(file);
BufferedWriter bWriter = new BufferedWriter(fileWriter);

이 두 방법의 차이점은 무엇입니까?

Printwriter를 언제 버퍼링 라이터보다 사용해야합니까?

도움이 되었습니까?

해결책

API 참조 완충 작가 그리고 인쇄기 차이점을 자세히 설명합니다.

PrintWriter를 사용하는 주된 이유는 println ()와 같은 printxxx 메소드에 액세스하는 것입니다. System.out을 사용하여 콘솔에 쓰는 것처럼 본질적으로 PrintWriter를 사용하여 파일에 쓸 수 있습니다.

버퍼링 라이터는 파일에 쓰기를하기 위해 (구현에 따라 구현에 따라) Java 메모리의 문자를 버퍼링하기 때문에 파일 (또는 다른 것)에 작성하는 효율적인 방법입니다.

"프린트레이더"와 같은 개념은 없습니다. 당신이 얻을 가장 가까운 것은 아마도입니다 java.util.scanner.

다른 팁

PrintWriter 더 많은 방법을 제공합니다.println), 그러나 가장 중요한 (그리고 걱정스러운) 차이점은 예외를 제외합니다.

전화해도됩니다 checkError 나중에 오류가 발생했는지 여부를 확인하지만 일반적으로 사용합니다. PrintWriter 콘솔에 쓰기 또는 예외에 의해 방해받지 않기를 원하지 않는 "빠른 '더러운"앱 (그리고 장기 신뢰성이 문제가되지 않는 경우).

왜 "추가 형식 능력"과 "제외 예외"측면이 동일한 클래스에 묶여 있는지 확실하지 않습니다. 형식은 여러분의 많은 곳에서 분명히 유용합니다. ~하지 않다 예외를 삼키기를 원합니다. 보는 것이 좋을 것입니다 BufferedWriter 어느 시점에서 같은 능력을 얻으십시오 ...

Tofubeer의 답변에서 말했듯이 둘 다 전문 분야가 있습니다. Printwriter (또는 다른 작가)를 최대한 활용할 수 있지만 버퍼링 된 글을 사용하려면 버퍼링 라이터를 필요한 것과 같은 버퍼링 라이터를 감싸 수 있습니다.

PrintWriter writer = new PrintWriter(
                         new BufferedWriter (
                             new FileWriter("somFile.txt")));

Printwriter는 캐릭터 모드의 모든 작가에 인쇄 방법을 노출시킵니다.

완충 작가는 버퍼링 된 방법에 따라보다 효율적입니다. 또한 시스템 플랫폼에 따라 텍스트 파일을 올바르게 조작하기 위해 Newline () 메소드가 제공됩니다.

BufferedReader는 파일에서 텍스트를 읽을 수 있으며 바이트는 문자로 변환됩니다. 한 줄씩 읽을 수 있습니다.

Printreader는 없으므로 입력 형식에 따라 다른 독자 구현을 선택해야합니다.

인쇄기 문자 데이터를 파일에 작성하는 가장 강화 된 작가입니다.

Filewriter 및 BufferedWriter보다 Printwriter의 주요 장점은 다음과 같습니다.

  1. Printwriter는 파일과 직접 통신 할 수 있으며 일부 작가 객체를 통해 통신 할 수도 있습니다.

PrintWriter printwriter = new PrintWriter("blah.txt");

(또는)

FileWriter filewriter = new FileWriter("blah.txt");
PrintWriter printwiter = new PrintWriter(filewriter);
  1. 모든 유형의 원시 데이터를 파일에 직접 쓸 수 있습니다 (Printwriter 메서드의 추가 과부하 버전, 즉 println ())이 있기 때문에).

    printwriter.print(65); //65
    bufferedwriter.write(65); //A
    printwriter.println(true); //true

일반적으로 작가는 출력을 즉시 기본 캐릭터 또는 바이트 스트림으로 보냅니다. 프롬프트 출력이 필요하지 않은 한, 필수기 및 출력 스트림 라이터와 같이 쓰기 () 작업이 비용이 많이 드는 작가 주위에 버퍼링 라이터를 포장하는 것이 좋습니다. 예를 들어,

참고 : 코드 블록의 텍스트 내용은 자동으로 워드 랩핑됩니다.

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));

프린트 라이터의 출력을 파일에 버퍼링합니다. 버퍼링이 없으면 인쇄 () 메소드의 각 호출로 인해 문자가 바이트로 변환되어 파일에 즉시 기록되며 이는 매우 비효율적 일 수 있습니다.

BufferedWriter- 출력 문자 스트림에 텍스트를 씁니다. 캐릭터 스트림의 버퍼링 문자. Printwriter- 텍스트 출력 스트림에 객체를 형식화 한 표현을 인쇄합니다.

인쇄기를 사용하는 이유는 이미 위에서 언급되어 있다고 생각하지만 중요한 이유 중 하나는 파일 개체를 PrintWriter 생성자에게 직접 전달하여 사용하기 쉽기 때문입니다.

File file=new File(“newfile.txt”);
PrintWriter pw=new PrintWriter(file);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top