Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- springboot
- mysql
- 배포
- spring
- DB
- 앱
- thymeleaf
- 폰트
- EAS
- 스프링
- 시큐리티
- Android
- 이클립스
- expo
- yml
- react
- Admob
- 안드로이드
- string
- 로또
- sqlite
- YAML
- Java
- 시놀로지
- Navigation
- sql
- sts
- 자바스크립트
- sdk
- Native
Archives
- Today
- Total
Dev JS Blog
[JAVA] 자바 파일 복사 본문
728x90
자바 파일 복사
자바 파일을 복사하는 법입니다. 이 방법을 이용해서 자바로 업로드 및 다운로드를 구현할 수 있는겁니다.
저는 D드라이브 newFolder 라는 폴더에 있는 sql.jpg 파일을 복사하려 합니다.
원본파일(oriFile)과 복사파일(copyFile) 경로와 파일명에 대해서 객체를 생성해줍시다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import java.io.File; public class FileTest { public static void main(String[] args) { //원본 파일경로 String oriFilePath = "D:\\newFolder\\sql.jpg"; //복사될 파일경로 String copyFilePath = "D:\\newFolder\\sql2.jpg"; //파일객체생성 File oriFile = new File(oriFilePath); //복사파일객체생성 File copyFile = new File(copyFilePath); } } | cs |
그다음 원본파일을 읽고 복사를 하겠씁니다.
fileInputStream과 fileOutputStream 을 이용하겠습니다.
이름 처럼 inputStream 은 파일을 읽을 때 사용하고 outputStream 을 파일을 복사할때 씁니다.
즉 inputStream에는 읽을 파일, outputStream에는 복사파일 객체를 넣어줍니다.
여기서 툴을 사용하시는 분들이라면 당연히 에러표시가 날껍니다.
try catch 하라는 에러가 날텐데요 그 이유는
catch 부분에 써있는 FileNotFoundException 처럼 막약 읽을 파일이 없을경우
익셉션 처리가 되도록 처리를 해주는 겁니다. 당황하지마세요~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class FileTest { public static void main(String[] args) { //원본 파일경로 String oriFilePath = "D:\\newFolder\\sql.jpg"; //복사될 파일경로 String copyFilePath = "D:\\newFolder\\sql2.jpg"; //파일객체생성 File oriFile = new File(oriFilePath); //복사파일객체생성 File copyFile = new File(copyFilePath); try { FileInputStream fis = new FileInputStream(oriFile); //읽을파일 FileOutputStream fos = new FileOutputStream(copyFile); //복사할파일 } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } | cs |
이제 마지막 단계 입니다.
inputStream을 활용을 해야겠죠?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileTest { public static void main(String[] args) { //원본 파일경로 String oriFilePath = "D:\\newFolder\\sql.jpg"; //복사될 파일경로 String copyFilePath = "D:\\newFolder\\sql2.jpg"; //파일객체생성 File oriFile = new File(oriFilePath); //복사파일객체생성 File copyFile = new File(copyFilePath); try { FileInputStream fis = new FileInputStream(oriFile); //읽을파일 FileOutputStream fos = new FileOutputStream(copyFile); //복사할파일 int fileByte = 0; // fis.read()가 -1 이면 파일을 다 읽은것 while((fileByte = fis.read()) != -1) { fos.write(fileByte); } //자원사용종료 fis.close(); fos.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } | cs |
while 부분이 중요합니다.
fis.read()는 1바이트씩 읽는 답니다.
더이상 읽을게 없으면 -1을 반환하게 됩니다.
그리고 마지막으로 inputStream 과 outputStream과 close()를 해줍니다.
결과를 보겠습니다.
outputStream에 했던 sql2 파일이 복사가 되었습니다.
728x90
'옛날 창고 > 개발' 카테고리의 다른 글
[Oracle] 오라클 날짜 포멧 (2) | 2019.01.31 |
---|---|
[jQuery] jQuery tooltip (0) | 2019.01.30 |
[java] 형변환 에러 (0) | 2018.06.26 |
[HTML] 체크박스 & 라디오버튼 컨트롤하기 (2) | 2018.04.28 |
[Eclipse] Eclipse 최적화 하기 (2) | 2018.04.05 |
Comments