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());
}
}
}