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]출력된다.

 

 

 

+ Recent posts