아래에 있는 파일을 입출력 하는 샘플코드를 수정한 내용이다.
단지 BufferedInputStream, BufferedOutputStream을 사용하는 것많으로도 많은 속도 향상을 가져온다.
그리고 또한 파일 입출력시에 int값을 가지고 조작하는것 보다.. byte배열을 가지고 처리하는것이 더 Performance향상을 가져온다.

[파일을 읽는 예제코드]
FileInputStream fis = null;
byte [] filebody = null;
ResourceBundle prop = null;

try
{
  // properties 파일을 읽어오기 위한 부분
  prop = ResourceBundle.getBundle("winitech");
  File f = new File (prop.getString ("BBS_FILE_PATH") + "test.jpg");

  // 읽으려고 하는 파일이 존재하는지 확인
  // 필요하다면 f.isFile()도 체크한다.
  if (!f.exists())
{
   System.out.println ("읽을 파일이 없습니다");
  }
   
  fis = new FileInputStream (f);
  // 단지 BufferedInputStream을 사용하는 것 만으로도 꽤 많은 속도 향상을 가져올수 있다.
  BufferedInputStream bis = new BufferedInputStream (fis);

  //  파일을 읽기 위해서 생성된 FileInputStream으로 부타 읽을수 있는 크기를 가져온다.
// 크기만큼 byte 배열을 생성한다.
  filebody = new byte [fis.available()];
  // 생성된 byte배열의 크기만큼 읽어서 저장한다.
  // (실제 읽을 파일의 크기만큼 배열을 선언했기때문에 파일 전체를 다 읽어서 저장한다.)
  int len = fis.read(filebody, 0, filebody.length);
}
catch (Exception e)
{
  System.out.println (e.toString());
}

[파일을 출력하는 예제 코드]
byte [] filebody = null;
FileOutputStream fout = null;
ResourceBundle prop = null;

try
{
  prop = ResourceBundle.getBundle("winitech");

  // 위(파일입력) 예제와 같이 File객체를 선언해서 해도되고 ,
  // FileOutputStream 생성자에 파일 경로를 바로 지정해도된다.
  fout = new FileOutputStream (prop.getString ("BBS_FILE_PATH") + "test.jpg");
  // 단지 BufferedOutputStream을 사용하는 것 만으로도 꽤 많은 속도 향상을 가져올수 있다.
BufferedOutputStream bos = new BufferedOutputStream (fout);

  // byte 배열의 내용을 한번에 파일로 저장한다.
  bos.write(filebody, 0, filebody.length);
  bos.flush ();
   
  fout.close();
}
catch (Exception e)
{
System.out.println ("파일 저장중에 오류가  발생했습니다." + e.toString ());
}

2007/01/10 15:47 2007/01/10 15:47
보이수(유동주) 이 작성.

Trackback URL : http://www.ishappy.net/tc/trackback/12

  1. 파일 입출력 예제

    Tracked from 유동주의 잡다한 블로그 2007/01/10 15:55 Löschung

    파일을 입출력 하는 샘플코드 이다..[파일을 읽는 예제코드]FileInputStream fis = null;byte [] filebody = null;ResourceBundle prop = null;try{ // properties 파일을 읽어오기 위한 부분 prop = ResourceBundle.getBundle("winitec..


당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]