File Stream이용해 파일복사하기
배열을 만들어 반복문실행
package ex3.array; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class CopyProgram { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("res/aaa.bmp"); // 이미지파일 불러오기 FileOutputStream fos = new FileOutputStream("res/img_copy.bmp"); // 이미지파일출력 // 2. fis를 통해서 1 바이트를 읽어서 변수 b에 담는다. // b의 값을 fos로 통해서 출력한다. int size = 0; byte[] buf = new byte[1000]; while ((size = fis.read(buf)) != -1) fos.write(buf); fis.close(); fos.close(); System.out.println("복사완료"); } }
FIleInputStream fis = new FileInputStream("상대경로");
FileOutputStream fos = new FileOutStream("상대경로");
- 입출력스트림의 객체생성
int size = 0;
- 변수 size 선언
byte[] buf = new byte[1000];
- buf 배열생성
size = fis.read(buf);
- read()는 한 바이트씩 읽어들이지만,
- read(byte[] b)는 배열byte[] b를 이용해서 한꺼번에 바이트 갯수를 읽어온다.
- 읽어올게 없으면 -1를 반환한다.
read()메소드를 사용했을경우 파일복사가 2분정도걸렸다면 read(byte[] b)메소드는 1초정도 걸린것같다!
배열생성,반복문이용,인덱스이용해서 거꾸로 출력하기
package ex1.bit; import java.io.IOException; public class test { public static void main(String[] args) throws IOException { //1.A부터 J까지 출력 char[] nums = new char[10]; // 배열생성 for(int i=0;i<10;i++) { // 0부터9까지 총 10번반복 nums[i] = (char)('A'+i); //배열 초기화(A~J)문자넣기 System.out.printf("%c",nums[i]); // 배열안에 넣은 문자출력 }System.out.println(); // [ABCDEFGHIJ] //2.J부터 A까지 출력 for(int i=0;i<10;i++) { nums[i] =(char)('J'-i); //J부터 A까지넣기 System.out.printf("%c",nums[i]); //출력 }System.out.println(); //[JIHGFEDCBA] char tmp; for(int i=0;i<5;i++) { tmp = nums[i]; // 값바꾸기 nums[i] = nums[9-i]; nums[9-i] = tmp;//nums[0]와 nums[9]가 맞바꾼상황이 반복된다 System.out.printf("%c",nums[i]); //양쪽값끼리바꾸므로 5번이면 다시A~순으로출력됨 //[ABCDE] } } }
char[] nums = new char[10];
- 배열 생성
for(int i=0;i<10;i++)
- 0부터 9까지 10번반복
nums[i] = (char)('A'+i);
- 'A' + 1 은 'B', 'A'+2 는 'C'이다. 한 문자에 숫자를 더하고 char타입으로 형변환을 해주면 다음 알파벳이 nums[i]에 들어간다.
nums[i] = (char)('J'-i);
- i가 증가할때 'J'-0, 'J'-1, 'J'-2으로 위의 서식과 반대가된다. 내림차순[JIHGFEDCBA]으로 배열에 들어간다.
tmp = nums[9];
nums[9] = nums[0];
nums[0] = tmp;
- nums[9]와 nums[0]가 서로 바뀐다.
- [JIHGFEDCBA] 다시 역순이 되어 [ABCDEFGHIJ]출력된다.
'2021 Newlecture > JAVA' 카테고리의 다른 글
String클래스 / 문자열배열 섞기/ 문자열비교 / 문자열정렬 (0) | 2021.03.11 |
---|---|
사진복사 / write(byte [] b, int off, int len) 이용해 출력 (0) | 2021.03.11 |
배열 / FileInputStream / Scanner()/ hasNextLine() / while() (0) | 2021.03.10 |
배열/ 랜덤값 radom()/ 섞기 / 버블정렬(가장 큰 숫자찾기) (0) | 2021.03.10 |
if / switch / 중첩된 제어구조 벗어나기 /do while (0) | 2021.03.08 |
nextInt() , nextLine()사용시 주의사항/Integer.pasrseInt() (0) | 2021.03.08 |
복합 대입연산자 / 삼항연산자 (0) | 2021.03.08 |
제어구조 / FileStream을 통해 파일복사 (0) | 2021.03.05 |