DialogFileCopyTest

조수경·2021년 11월 15일
0

고급자바

목록 보기
38/97
package kr.or.didt.basic;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class DataIOTest {

	public static void main(String[] args) {

		try {
			FileOutputStream fout =
					new FileOutputStream("d:/d_other/testData.dat");
			
			//자료형 단위로 출력할 보조 스트림인 DataOutputStream객체 생성
			DataOutputStream dout = new DataOutputStream(fout);
			
			dout.writeInt(200);        //정수형으로 출력
			dout.writeFloat(123.45f);  //실수형으로 출력
			dout.writeBoolean(false);  //논리형으로 출력
			dout.writeUTF("ABCDabcd"); //문자열형식으로 출력
			
			System.out.println("출력 완료...");
			dout.close(); //스트림 닫기
			
			//------------------------------------------------
			
			//출력한 데이터 읽어오기
			FileInputStream fin = new FileInputStream("d:/d_other/testData.dat");
			
			DataInputStream din = new DataInputStream(fin);
			
			//DataInputStream으로 자료를 읽어올 때는
			//DataOutputStream으로 출력한 순서와 같은 순서를 읽어와야 한다.
			System.out.println("정수형 : "+ din.readInt());
			System.out.println("실수형 : "+ din.readFloat());
			System.out.println("논리형 : "+ din.readBoolean());
			System.out.println("실수형 : "+ din.readUTF());
			
			System.out.println("읽기 작업 완료...");
			
			din.close();
			
		} catch (IOException e) {
			// TODO: handle exception
		}
		
	}

}
package kr.or.didt.basic;

import java.awt.Panel;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;

public class DialogFileCopyTest {
	enum DialogChoice { OPEN, SAVE } 
	
	public static void main(String[] args) {
		new DialogFileCopyTest().fileCopyStart();
	}
	
	public void fileCopyStart(){
		
		// 복사할 원본 파일 선택
		File file = showDialog(DialogChoice.OPEN);
		if(file==null){
			System.out.println("복사할 원본 파일을 선택하지 않았습니다.");
			System.out.println("복사 작업을 중단합니다...");
			return;
		}
		if(!file.exists()){
			System.out.println(file.getPath() + "파일이 없습니다.");
			System.out.println("복사 작업을 중단합니다...");
			return;
		}
		
		// 복사될 대상 파일 선택
		File targetFile = showDialog(DialogChoice.SAVE);
		if(targetFile==null){
			System.out.println("복사될 대상 파일을 선택하지 않았습니다.");
			System.out.println("복사 작업을 중단합니다...");
			return;
		}
		
		try {
			// 복사할 원본 파일에 사용할 스트림 객체 생성
			FileInputStream fin = new FileInputStream(file);
			
			// 복사될 대상 파일에 사용할 스트림 객체 생성
			FileOutputStream fout = 
				new FileOutputStream(targetFile);
			
			System.out.println("복사 시작...");
			
			int data; 	// 읽어온 데이터가 저장될 변수
			
			while((data=fin.read())!=-1){
				fout.write(data);
			}
			
			// 스트림 닫기
			fin.close();
			fout.close();
			System.out.println("복사 완료...");
			
		} catch (IOException e) {
			// TODO: handle exception
		}

	}
	
	
	
	public File showDialog(DialogChoice choice){
		// SWING의 파일 열기, 저장 창 연습
		JFileChooser chooser = new JFileChooser();
		
		// 선택할 파일의 확장자 설정
		FileNameExtensionFilter doc = 
			new FileNameExtensionFilter("Word File", "docx", "doc");
		FileNameExtensionFilter img =
			new FileNameExtensionFilter("Image File", new String[]{"png", "jpg", "gif"});
		FileNameExtensionFilter txt = 
			new FileNameExtensionFilter("text파일(.txt)", "txt");
		
		chooser.addChoosableFileFilter(doc);
		chooser.addChoosableFileFilter(img);
		chooser.addChoosableFileFilter(txt);
		
		// 확장자 목록 중 기본적으로 선택될 확장자 지정
		chooser.setFileFilter(txt); 
		
		// 모든 파일 목록 표시 여부 설정(true: 설정, false: 해제)
		//chooser.setAcceptAllFileFilterUsed(false);
		chooser.setAcceptAllFileFilterUsed(true);
		
		// Dialog창에 나타날 기본 경로 설정하기
		chooser.setCurrentDirectory(new File("d:/d_other"));
		int result = -1;
		if(choice==DialogChoice.OPEN){
		
			// 열기 창
			result = chooser.showOpenDialog(new Panel());//부모창?
		}else if(choice==DialogChoice.SAVE){
			// 저장 창
			result = chooser.showSaveDialog(new Panel());
		}
		// '열기 창' 또는 '저장 창'에서 선택한 파일 정보 가져오기
		
		
		File selectedFile = null;
		// '열기' 또는 '저장'버튼을 눌렀을 경우에는...
		if(result == JFileChooser.APPROVE_OPTION){ 
			// 선택한 파일 정보 구하기
			selectedFile = chooser.getSelectedFile();
			//System.out.println("선택 파일 : " + selectedFile.getAbsolutePath());
		}
		return selectedFile;
	}

}
package kr.or.didt.basic;

import java.awt.Panel;
import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;

public class DialogTest {

	public static void main(String[] args) {

		// SWING의 파일 열기, 저장 창 연습
		JFileChooser chooser = new JFileChooser();
		
		// 선택할 파일의 확장자 설정
		FileNameExtensionFilter doc = //document: 문서
				new FileNameExtensionFilter("Word File", "docx", "doc");
		FileNameExtensionFilter img =
				new FileNameExtensionFilter("Image File", new String[] {"png", "jpg", "gif"});
		FileNameExtensionFilter txt =
				new FileNameExtensionFilter("text파일(.txt)", "txt");
		
		chooser.addChoosableFileFilter(doc);
		chooser.addChoosableFileFilter(img);
		chooser.addChoosableFileFilter(txt);
		
		//확장자 목록 중 기본적으로 선택될 확장자 지정
		chooser.setFileFilter(txt);
		
		// 모든 파일 목록 표시 여부 설정(true : 설정, false: 해제) -> 텍스트 들어가서 우클한후 보기에서 설정하는 것
		//chooser.setAcceptAllFileFilterUsed(false);
		chooser.setAcceptAllFileFilterUsed(true);
		
		//Dialog창에 나타날 기본 경로 설정하기
		chooser.setCurrentDirectory(new File("d:/d_other"));
		
		//열기 창
		//int result = chooser.showOpenDialog(new Panel());
		
		//저장 창
		int result = chooser.showSaveDialog(new Panel());
		
		//'열기 창' 또는 '저장 창'에서 선택한 파일 정보 가져오기
		
		//'열기' 또는 '저장'버튼을 눌렀을 경우에는 ...
		if(result == JFileChooser.APPROVE_OPTION){ 
			//선택한 파일 정보 구하기
			File selectedFile = chooser.getSelectedFile();
			System.out.println("선택 파일 : " + selectedFile.getAbsolutePath());
		}
		
		
	}

}
profile
신입 개발자 입니다!!!

0개의 댓글

관련 채용 정보