ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] IO 입출력 객체 사용법 (아주중요)
    program_language 및 궁금한것/Java 2019. 7. 29. 19:05
    package com.siri;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.FileWriter;
    
    public class FileCopySpeedTest {
    	// 바이트 단위 입출력
    	FileInputStream fis;
    	FileOutputStream fos;
    
    	// 문자단위 입출력
    	FileReader fr;
    	FileWriter fw;
    
    	// 라인단위 입출력 <-- 문자들을 버퍼에 담았다가 한번에 읽고 쓰기
    	BufferedReader br;
    	BufferedWriter bw;
    
    	// 4) 바이트 단위 입출력(byte배열 사용)
    	FileInputStream fis2;
    	FileOutputStream fos2;
    
    	public FileCopySpeedTest() throws Exception {
    		fis = new FileInputStream("a.txt");// FROM
    		fos = new FileOutputStream("b.txt");// TO
    		// fis.read()//한 바이트 읽기
    		int i;
    
    		long start = System.currentTimeMillis();
    		while ((i = fis.read()) != -1) {// 읽을 바이트가 있다면
    			fos.write(i);
    			// b.txt파일에 써라 무엇을
    		}
    		long end = System.currentTimeMillis();
    
    		System.out.println("[byte단위]파일복사 성공!!^^*: " + (end - start));
    
    		fos.close();// 입출력객체 자원 반환 (다른 사람 또는 응용프로그램에서 사용할 수 있기 때문에)
    		fis.close();// 입출력객체 자원 반환
    		// =====================<문자단위 입출력>=============================
    		fr = new FileReader("a.txt");
    		fw = new FileWriter("b.txt");
    
    		start = System.currentTimeMillis();
    		while ((i = fr.read()) != -1) {
    			fw.write(i);
    			// 어디에 써라 i(에 해당하는 문자)를 읽어서
    		}
    		end = System.currentTimeMillis();
    
    		System.out.println("[문자단위]파일복사 성공!!^^*: " + (end - start));
    		fw.close();
    		fr.close();
    		// =====================<버퍼단위 입출력>=============================
    		br = new BufferedReader(new FileReader("a.txt"));
    		bw = new BufferedWriter(new FileWriter("b.txt"));
    
    		String str;
    
    		start = System.currentTimeMillis();
    		while ((str = br.readLine()) != null) {// 읽을 라인이 있다면
    			bw.write(str);
    			// 2. b.txt파일에 출력 1.str을 읽어서
    		}
    		end = System.currentTimeMillis();
    		System.out.println("[버퍼사용]파일복사 성공!!^^*: " + (end - start));
    
    		bw.close();
    		br.close();
    
    		// =====================<바이트단위 입출력>=============================
    		fis2 = new FileInputStream("a.txt");
    		fos2 = new FileOutputStream("b.txt");
    
    		byte[] b = new byte[1024];
    		start = System.currentTimeMillis();
    		while ((i = fis2.read(b)) != -1) {
    			// a.txt를 읽어서 b배열에 복사
    			fos2.write(b, 0, i);
    			// b배열을 읽어서 b.txt에 쓰기
    			
    		}
    		end = System.currentTimeMillis();
    		System.out.println("[바이트단위, 배열사용]파일복사 성공!!^^*: " + (end - start));
    		fos2.close();
    		fis2.close();
    
    	}
    
    	public static void main(String[] args) throws Exception { // ***
    		// 파일 복사와 복사에 걸리는 시간을 체크
    		// a.txt 파일을 읽어서 b.txt: FileCopy
    		new FileCopySpeedTest();
    	}
    }
    
    반응형

    'program_language 및 궁금한것 > Java' 카테고리의 다른 글

    [Java] 자바 static을 지양하자  (0) 2019.09.27
    [Java] 마이바티스(Mybatis) 란? 그리고 사용방법  (0) 2019.08.31
    ibatis란?  (0) 2019.07.01
    [JAVA] POJO란?  (0) 2019.06.18
    [자바] throws  (0) 2019.05.21

    댓글

Designed by Tistory.