레이블이 file인 게시물을 표시합니다. 모든 게시물 표시
레이블이 file인 게시물을 표시합니다. 모든 게시물 표시

Java - 파일 쓰기 성능 비교

1. 자바에서 파일 쓰기 구현시 어떤 방법이 빠른지 테스트.
- FileWriter fw = new FileWriter(LOG_HOME+"writer.log");
- BufferedWriter bw = new BufferedWriter(new FileWriter(LOG_HOME+"writer.log"));
- FileOutputStream fos = new FileOutputStream(LOG_HOME+"outputstream.log");
- BufferedOutputStream fos = new BufferedOutputStream(
               new FileOutputStream(LOG_HOME+"bufferedoutputstream.log"));
- FileChannel fc =
       (new FileOutputStream(new File(LOG_HOME+"filechannel.log"))).getChannel();
// Byte Buffer 매번 생성
- FileChannel fc =
       (new FileOutputStream(new File(LOG_HOME+"filechannel.log"))).getChannel();
// ByteBuffer 재사용

2. 테스트 결과
                                                           1K    2K      5K     10K      50K
FileWriter                                               31    32      94     203     1281
FileWriter + BufferedWriter                        15    31      94     188     1000
FileOutputStream                                     32    47    109     188     1063
FileOutputStream + BufferedOutputStream    31    47    109     203     1578
FileChannel                                             47    63    109     219     2906
FileChannel + Byte Buffer 재사용                 31    47    188     250     2766

FileWriter와 FileOutputStream의 성능이 높게 나옴.
BufferedWriter 등의 경우 GC를 유발하는 문제가 있기 때문에 성능 저하 요인이 될 수 있으나, 테스트 결과로는 FileWriter + BufferedWriter의 경우가 성능이 제일 좋음.

Oracle - 데이터 파일 이동하기

* ALTER DATABASE를 이용한다.
1) 데이터베이스를 종료 한다.
2) 운영체제 명령을 사용하여 데이터 파일을 이동 한다.
3) 데이터베이스를 마운트 모드로 시작한다.
4) ALTER DATABASCE RENAME FILE명령을 수행하여 이름을 변경한다.
5) 인스턴스를 시작한다

Oracle - 데이터 파일 관리

* 데이터 파일의 크기 조절하기
기존 데이터 파일들은 ALTER DATABASE와 ALTER TABLESPACE 명령어로 크기를 재조정.

ALTER DATABASE
    DATAFILE 'C:\ORACLE\ORADATA\ORACLE\SYSTEM01.DBF'
    RESIZE 400m;



* 데이터 파일 자동 확장 하기
CREATE DATABASE, CREATE TABLESPACE, ALTER TABLESPACE 명령을 사용

CREATE TABLESPACE KJS
    DATAFILE 'C:\ORACLE\ORADATA\ORACLE\KJS.DBF'
    SIZE 300M
    AUTOEXTEND ON
    NEXT 10M
    MAXSIZE 500M;



* 새로운 데이터 파일을 기존 테이블 스페이스에 추가하기
KJS테이블 스페이스에 AUTOEXTEND, MAXSIZE를 명시하고 100메가의 KJS_01.DBF파일을 추가 하는 예.

ALTER TABLESPACE KJS
    ADD DATAFILE 'C:\ORACLE\ORADATA\ORACLE\KJS_01.DBF' SIZE 100M
    AUTOEXTEND ON
    MAXSIZE 300M;



* 기존 파일의 속성 변경하기
ALTER DATABASE명령을 이용하면 된다.

ALTER DATABASE
    DATAFILE 'C:\ORACLE\ORADATA\ORACLE\KJS_01.DBF'
    AUTOEXTEND ON
    MAXSIZE 500M;

Java - URL 이미지 파일로 저장하기


String imgUrl = "http://www.a.com/test_image.jpg";  // 이미지 URL
String imgFilePath = "test_image.jpg";              // 저장할 파일명 (경로 포함)
String imgFormat = "jpg";                         // 저장할 이미지 포맷. jpg, gif 등

getImageFromUrl(imgUrl, imgFilePath, imgFormat);






/**
 * Image URL to File
 */
public void getImageFromUrl(String imgUrl, String imgFilePath, String imgFormat)
{
        try
        {
            // Image 가져오기
            BufferedImage image = ImageIO.read(new URL(imgUrl));
                       
            // Image 저장할 파일
            File imgFile = new File(imgFilePath);
           
            // Image 저장
            ImageIO.write(image, imgFormat, imgFile);
        }
        catch (Exception e)
        {
        }
}