자바 파일 라이터

자바 파일 라이터 클래스,java.io.FileWriter,파일에 문자를 쓸 수 있습니다. 이 점에서 자바 파일 라이터는FileOutputStream는 바이트 기반이고FileWriter은 문자 기반이라는 점을 제외하고는FileOutputStream와 많이 유사합니다. FileWriter은 텍스트를 작성하기위한 것입니다. 사용 중인 문자 인코딩 체계에 따라 한 문자가 하나 이상의 바이트에 해당할 수 있습니다. 자바FileWriter클래스는 방법에 의해,자바 작가 클래스의 서브 클래스입니다.

파일 라이터 예제

다음은 간단한 자바FileWriter예제입니다:

Writer fileWriter = new FileWriter("data\filewriter.txt");fileWriter.write("data 1");fileWriter.write("data 2");fileWriter.write("data 3");fileWriter.close();

참고: 명확성을 위해 여기서 적절한 예외 처리를 건너 뛰었습니다. 올바른 예외 처리에 대한 자세한 내용은 자바 입출력 예외 처리로 이동합니다.

FileWriter에는 다른 생성자도 있으므로 다른 방법으로 쓸 파일을 지정할 수 있습니다. 더 자세한 정보는 공식 자바독에서 확인하십시오.

덮어쓰기 대 파일 추가

자바FileWriter을 만들 때 기존 파일을 같은 이름으로 덮어쓸 것인지,기존 파일에 추가할 것인지 결정할 수 있습니다. 당신은 당신이 사용하는FileWriter생성자를 선택하여 결정합니다.

FileWriter하나의 매개 변수 인 파일 이름을 사용하는 생성자는 기존 파일을 덮어 씁니다:

Writer fileWriter = new FileWriter("c:\data\output.txt");

FileWriter 파일 이름과 부울:너무 2 매개 변수를 사용하는 생성자가 있습니다. 부울은 기존 파일을 추가하거나 덮어쓸 것인지 여부를 나타냅니다. 여기에 보여주는 두 자바FileWriter예는 다음과 같습니다:

Writer fileWriter = new FileWriter("c:\data\output.txt", true); //appends to fileWriter fileWriter = new FileWriter("c:\data\output.txt", false); //overwrites file

파일 라이터 문자 인코딩

FileWriter은 응용 프로그램이 실행 중인 컴퓨터의 기본 문자 인코딩을 사용하여 파일에 바이트를 인코딩하려는 것으로 가정합니다. 이것은 항상 당신이 원하는 것을하지 않을 수 있습니다,당신은 그것을 변경할 수 없습니다!

다른 문자 인코딩 체계를 지정하려면FileWriter을 사용하지 마십시오. 대신FileOutputStreamOutputStreamWriter을 사용합니다. OutputStreamWriter을 사용하면 기본 파일에 바이트를 쓸 때 사용할 문자 인코딩 체계를 지정할 수 있습니다.

쓰기(지능)

자바FileWriterwrite(int)메서드는int의 하위 16 비트를FileWriter이 연결된 대상에 단일 문자로 씁니다. 다음은 자바FileWriter에 단일 문자를 쓰는 예입니다.:

FileWriter fileWriter = new FileWriter("data/output.txt");fileWriter.write('A');

쓰기(문자)

자바FileWriter또한FileWriter이 연결된 대상에 문자 배열을 쓸 수있는write(char)메서드가 있습니다. write(char)메서드는FileWriter에 실제로 기록된 문자 수를 반환합니다. 다음은 자바에 문자 배열을 작성하는 예입니다FileWriter:

FileWriter fileWriter = new FileWriter("data/output.txt");char chars = new char{'A','B','C','D','E'};fileWriter.write(chars);

쓰기 성능

한 번에 하나의 문자를 쓰는 것보다 자바 파일 라이터에 문자 배열을 쓰는 것이 더 빠릅니다. 속도 향상은 매우 중요 할 수 있습니다-최대 10 배 이상. 따라서 가능할 때마다write(char)방법을 사용하는 것이 좋습니다.

당신이 얻을 정확한 속도 향상은 자바 코드를 실행하는 컴퓨터의 기본 운영 체제 및 하드웨어에 따라 달라집니다. 속도 향상은 메모리 속도,하드 디스크 속도 및 버퍼 크기 등과 같은 문제에 따라 다릅니다.

버퍼라이터를 통한 투명 버퍼링

자바 버퍼라이터로 래핑하여 자바FileWriter에 작성된 바이트의 투명 버퍼링을 얻을 수 있습니다. BufferedWriter에 기록 된 모든 바이트는 먼저BufferedWriter의 내부 바이트 배열 내에서 버퍼링됩니다. 버퍼가 가득 차면 버퍼가 기본FileWriter로 한꺼번에 플러시됩니다. 다음은 자바FileWriter을 래핑하는 예입니다.BufferedWriter:

int bufferSize = 8 * 1024;Writer writer = new BufferedWriter( new FileWriter("c:\data\output-file.txt"), bufferSize );

BufferedWriter에 대한 자세한 내용은 버퍼라이터 자습서에서 확인할 수 있습니다.

플러시()

자바FileWriterflush()메서드는FileWriter에 기록된 모든 데이터를 기본 파일로 플러시합니다. 데이터는 자바 코드가FileWriter에 기록 된 경우에도 어딘가에 운영 체제 메모리에 버퍼링 될 수 있습니다. flush()를 호출하면 버퍼링 된 데이터가 디스크에 플러시(기록)될 것이라고 확신 할 수 있습니다. 다음은flush()메서드를 호출하여 자바FileWriter에 작성된 데이터 플러싱의 예입니다:

fileWriter.flush();

파일 라이터 닫기

자바FileWriter에 문자 쓰기를 마치면 닫아야 합니다. FileWriter을 닫는 것은close()메서드를 호출하여 수행됩니다. 자바FileWriter을 닫는 방법은 다음과 같습니다:

fileWriter.close();

또한 자바 7 에 도입 된 시도-와-자원 구조를 사용할 수 있습니다. 리소스 사용 시도 구문으로FileWriter모양을 사용하고 닫는 방법은 다음과 같습니다.

try(FileWriter fileWriter = new FileWriter("data\filewriter.txt") ){ fileWriter.write("data 1"); fileWriter.write("data 2"); fileWriter.write("data 3");}

답글 남기기

이메일 주소는 공개되지 않습니다.