2012. 10. 18. 13:23
[ 파일 IO ] 스트림 파일 쓰기 / 읽기 Byte , Buffered 용-ILE/LANG-JAVA(JSP)2012. 10. 18. 13:23
http://suite.tistory.com fs 2012.10
매번 검색해서 사용하던거 정리
java.lang.OutOfMemoryError: Java heap space 에러나지 MAX_BUF_BYTE 단위로 loop !
※ Buffered*클래스 사용하면 큰파일에 유리하다고 구글링!~
1. InputStream 으로 파일 쓰기
private final int MAX_BUF_BYTE = 1024000; FileInputStream in = null; FileOutputStream fos = null; BufferedInputStream bis = null; BufferedOutputStream bos = null; try { byte[] buffer = new byte[MAX_BUF_BYTE]; in = new FileInputStream(new File("file")); fos = new FileOutputStream(filename); bis = new BufferedInputStream(in); bos = new BufferedOutputStream(fos); int len = 0; while ((len = bis.read(buffer)) >= 0) { bos.write(buffer, 0, len); } } catch (Exception e) { LOG.info(e.toString()); } finally { try { bos.close(); bis.close(); fos.close(); in.close(); } catch (Exception e) { } }
2. stream을 byte 로 변환
ByteArrayOutputStream 클래스 활용
InputStream in = null; BufferedInputStream bis = null; ByteArrayOutputStream arrayBuff = new ByteArrayOutputStream(); try { byte[] buffer = new byte[MAX_BUF_BYTE]; in=new FileInputStream(new File("readFile")); bis = new BufferedInputStream(in); int len = 0; while ((len = bis.read(buffer)) >= 0) { arrayBuff.write(buffer, 0, len); } } catch (Exception e) { LOG.info(e.toString()); } finally { try { in.close(); bis.close(); } catch (Exception e) { } } return arrayBuff.toByteArray();
'용-ILE > LANG-JAVA(JSP)' 카테고리의 다른 글
등록 시간 날짜 & 읽은 숫자(카운트) 줄여서 표시 (네이버TV,유튜브처럼) (0) | 2018.01.11 |
---|---|
jar 패키지 파일 내 txt 파일 읽기 , 경로 getResource getResourceAsStream (1) | 2015.07.14 |
[ java ] javax.mail 참조 용 (0) | 2012.05.30 |
[java] Pascal Triangle by array (0) | 2011.06.18 |
[정렬] 자바(java) 다중 정렬 (multi sort) (0) | 2011.02.09 |