FileIOTest 0~5

package kr.or.didt.basic;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*
 *  문제)
 *  'd:d_other' 폴더에 저장되어 있는 '강아지.jpg'파일을
 *  'd:d_other/연습용' 폴더에 '복사본_강아지.jpg'파일로 복사하는
 *   프로그램을 만드시오.
 * 
 */


public class FileCopyTest {

	public static void main(String[] args) {

		
		try{
			
			File file = new File("d:/d_Other/멍멍.jpg");
			FileInputStream fin = new FileInputStream(file);
			BufferedInputStream bin = new BufferedInputStream(fin);
	
			
		FileOutputStream fout = new FileOutputStream("d:/d_other/연습용/복사본_멍멍.jpg");
		BufferedOutputStream bout = new BufferedOutputStream(fout); 
		
		/*int c;
		while((c = fin.read()) != -1){
			
			fout.write(c);
			System.out.println((char)c);
			
		}*/
		/*
		fout.close(); //쓰기 작업 완료 후 스트림 닫기
		fin.close();*/
		
		//버퍼 스트림으로 작업
		int data;
		while((data =bin.read()) != -1){
			bout.write(data);
		}
		
		bout.flush();
		
		bout.close();
		System.out.println("복사 완료...");
		
		} catch(IOException e){
			
		}
		
		
	}

}

FileIOTest01

package kr.or.didt.basic;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class FileIOTest01 {

	public static void main(String[] args) {

		try {
			// 파일 내용을 읽어오기 위해서는 FileInputStream 객체가 필요하다
			
			//스트림 객체 생성
			// 방법1 => 읽어올 파일 정보를 문자열로 직접 기술하는 방법
//			FileInputStream fin = new FileInputStream("d:/d_Oter/test.txt");
			
			// 방법2 => 읽어올 파일을 File객체로 만들어서 사용하는 방법
			File file = new File("d:/d_Other/test.txt");
			FileInputStream fin = new FileInputStream(file);
			
			int c;   //읽어온 데이터가 저장될 변수
			while( (c = fin.read()) != -1 ){ //만약 데이터가 -1이면??? 
				// 읽어온 데이터를 화면에 출력하기
				System.out.print( (char)c );
				//print인데 왜 줄바꿈이 되어있나? enter도 줄바꿈 문자라 코드값이 저장된것
			}
			
			fin.close(); //작업 완료 후 스트림 닫기
			
		} catch (IOException e) {
			// TODO: handle exception
		}
	}

}


FileIOTest02

package kr.or.didt.basic;

import java.io.FileOutputStream;
import java.io.IOException;

public class FileIOTest02 {

	public static void main(String[] args) {

		//파일에 데이터 출력하기
		
		try {
			FileOutputStream fout = new FileOutputStream("d:/d_other/out.txt");
			
			for (char ch = 'A'; ch < 'Z'; ch++) {
				fout.write(ch);//ch변수의 데이터를 파일로 출력한다
			}
			
			System.out.println("출력 작업 완료!!!");
			fout.close(); //쓰기 작업 완료 후 스트림 닫기
			
		} catch (IOException e) {
			// TODO: handle exception
		}
		
	}

}

FileIOTest03

package kr.or.didt.basic;

import java.io.FileReader;
import java.io.IOException;

public class FileIOTest03 {

	public static void main(String[] args) {

		//문자 기반의 스트림을 이용한 파일 내용 읽어와 출력하기
		try {
			FileReader fr = new FileReader("d:/d_other/test.txt");
			
			int c;
			
			while((c=fr.read()) != -1){
				System.out.println((char)c);
			}
			
			fr.close();
			
		} catch (IOException e) {
			// TODO: handle exception
		}
		
	}

}

FileIOTest04

package kr.or.didt.basic;

import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class FileIOTest04 {

	public static void main(String[] args) {

		//사용자가 입력한 내용을 그대로 파일로 저장하기
		
		try {
			// System.in ==> 콘솔(표준입출력장치)의 입력장치용 스트림객체
			// InputStreamReader => 입력용 바이트기반의 스트림을 문자기반의 스트림으로 변환하는 보조스트림이다.
			
			InputStreamReader isr = new InputStreamReader(System.in);
			//byte기반의 스트림을 문자 기반으로 변환해 주는것
			
			// 파일 출력용 문자기반 스트림 객체 생성
			FileWriter fw = new FileWriter("d:/d_other/testChar.txt");
			
			System.out.println("아무 내용이나 입력하세요."+"(입력의 끝은 Ctrl + Z 입니다.)");
			
			int c;
			
			//콘솔에서 데이터를 입력할 때 입력의 끝은 'Ctrl + Z'키를 누르면 된다.
			while((c=isr.read()) != -1){
				fw.write(c); //콘솔로 입력한 데이터를 파일로 출력한다.
			}
			
			isr.close();
			fw.close();
			
			
		} catch (IOException e) {
			// TODO: handle exception
		}
		
	}

}

FileIOTest05

package kr.or.didt.basic;

import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class FileIOTest05 {

	public static void main(String[] args) {

		// 한글 내용이 있는 파일 읽어오기
		// (한글의 인코딩 방식을 지정해서 읽어오기)
		
		try {
			
//			FileReader fr = new FileReader("d:/d_other/text_anci.txt");
			FileReader fr = new FileReader("d:/d_other/text_utf8.txt");
			
			FileInputStream fin = new FileInputStream("d:/d_other/text_utf8.txt");
			
			//기본 인코딩 방식을 읽어온다.
//			InputStreamReader isr = new InputStreamReader(fin);
			
			//인코딩 방식을 지정해서 읽어오기
			//인코딩 방식 예시
			// - MS949 => 윈도우의 기본 한글 인코딩 방식(ANSI 방식과 같다.)
			// - UTF-8 => 유니코드 UTF-8 인코딩 방식
			// - US-ASCII => 영문 전용 인코딩 방식
//			InputStreamReader isr = new InputStreamReader(fin, "ms949");
			InputStreamReader isr = new InputStreamReader(fin, "utf-8");
			
			int c;
			while((c=isr.read()) != -1){
				System.out.print((char)c);
				
			}
			
			isr.close();
			
		} catch (IOException e) {
			// TODO: handle exception
		}
		
	}

}

좋은 웹페이지 즐겨찾기