23.01.27(Java)

MH S·2023년 1월 27일

Java

목록 보기
12/16

I/O 스트림


  1. 파일 관련 메소드 예제
package ch14;

import java.io.File;

public class FileEx1 {
	
	public static void main(String[] args) {
		File f = new File("ch14/FileEx1.java");
		System.out.println(f.exists());
		if(f.exists()) {
			System.out.println("파일이름" + f.getName());
			System.out.println("상대경로" + f.getPath());
			System.out.println("절대경로" + f.getAbsolutePath());
			System.out.println("쓰기가능" + f.canWrite());
			System.out.println("읽기가능" + f.canRead());
			System.out.println("파일크기" + f.length()+"byte");
		}else {
			System.out.println("파일이 존재하지 않습니다.");
		}
		
	}
}



  1. 디렉토리 파일 명 출력 예시
package ch14;

import java.io.File;

public class FileEx2 {
	public static void main(String[] args) {
		String dir = "C:/Windows";
		File fdir = new File(dir);
		if(fdir.isDirectory()) {
			System.out.println("검색 디렉토리 " + dir);
			System.out.println("=========================");
			String list[] = fdir.list();
			for (int i = 0; i < list.length; i++) {
				File f = new File(dir + File.separator+list[i]);
				if(f.isDirectory()) {
					System.out.println("["+list[i]+"]");
				}else {
					System.out.println(list[i]);
				}
				
			}
		}else {
			System.out.printf("지정한 %s 는 디렉토리가 아닙니다.",dir);
		}
	}
}



  1. BufferedReader
package ch14;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class BufferedReaderEx1 {
	public static void main(String[] args) {
//		InputStream is = System.in;
//		InputStreamReader isr = new InputStreamReader(is);
//		BufferedReader bw = new BufferedReader(isr);
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String s = "";
		
		while(true) {
			try {
				s = br.readLine();
				System.out.println("출력 : "+s);
			} catch (Exception e) {
			
			}
		}
	}
}



  1. BufferedWriter
package ch14;

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;

public class BufferedWriterEx1 {
	public static void main(String[] args) {
		String str = "오늘은 정말 즐거운 금요일 입니다.";
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		try {
			bw.write(str, 0, str.length());
			bw.newLine();
			bw.write(str);
			bw.newLine();
			bw.flush();
			bw.close();
		} catch (Exception e) {
			
		}
	}
}



  1. FileWrtie , FileReader 파일 복사하기 예제
package ch14;

import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;
public class FileCopyEx1 {
	public static void main(String[] args) {
		try {
			Scanner sc = new Scanner(System.in);
			System.out.print("원본파일 : ");
			String sFile = sc.nextLine();
			System.out.print("복사파일 : ");
			String cFile = sc.nextLine();
			FileReader fr = new FileReader("ch14/" + sFile);
			//파일 생성
			FileWriter fw = new FileWriter("ch14/" + cFile);
			int a; 
			while((a=fr.read())!=-1){
				fw.write(a);
			}
			fw.close();
			fr.close();
			System.out.println("Copy End!!!");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
  1. 파일 열고 저장하는 법
package ch14;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FileDialog;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileCopyEx2 extends MFrame implements ActionListener {
	Button open, save;
	TextArea ta;
	FileDialog openDialog, saveDialog;
	String sourceDir;
	String sourceFile;

	public FileCopyEx2() {
		super(400, 500);
		setTitle("FileCopyEx2");
		add(ta = new TextArea());
		Panel p = new Panel();

		saveDialog = new FileDialog(this, "파일 저장", FileDialog.SAVE);
		p.add(open = new Button("OPEN"));
		p.add(save = new Button("SAVE"));
		ta.setEditable(false);
		open.addActionListener(this);
		save.addActionListener(this);
		add(p, BorderLayout.SOUTH);
		validate();
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		Object obj = e.getSource();
		BufferedReader br;
		FileReader fr;

		if (obj == open) {
			openDialog = new FileDialog(this, "파일 열기", FileDialog.LOAD);
			openDialog.setVisible(true);
			sourceDir = openDialog.getDirectory();
			sourceFile = openDialog.getFile();
			try {
				fileReader(sourceDir + sourceFile);
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}

		} else if (obj == save) {
			saveDialog = new FileDialog(this, "파일 저장", FileDialog.SAVE);
			saveDialog.setVisible(true);

			String sourceDir, sourceFile;

			sourceDir = saveDialog.getDirectory();
			sourceFile = saveDialog.getFile();
			fileWriter(sourceDir + sourceFile);
		}
	}

	// 선택된 파일의 내용이 ta에 append 해야함
	public void fileReader(String file) throws IOException {
		try {
			FileReader fr = new FileReader(file);
			int a;
			String s = "";
			while ((a = fr.read()) != -1) {
				s += (char) a;
			}
			ta.setText(s);
			fr.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// ta에 오픈된 텍스트를 지정한 파일로 저장 해야함
	public void fileWriter(String file) {
		try {
			FileWriter fw = new FileWriter(file);
			fw.write(ta.getText());
			for (int i = 5; i > 0; i--) {
				ta.setText("저장 되었습니다." + i + "초후에 사라집니다.");
				Thread.sleep(1000);
			}
			ta.setText("");
			fw.close();
		} catch (Exception e) {
			// TODO: handle exception
		}

	}

	public static void main(String[] args) {
		new FileCopyEx2();
	}
}



  1. pdf 파일 복사하는 법
package ch14;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class FileCopyEx3 {
	public static void main(String[] args) {
		copyFileByStream("ch14/aaa.pdf", "ch14/bbb.pdf");
	}

	public static void copyFileByStream(String sourcePath, String targetPath) {
		File source = new File(sourcePath);
		File target = new File(targetPath);
		if (!source.exists()) {
			return;
		}
		if (!target.getParentFile().exists()) {
			target.getAbsoluteFile().mkdirs();
			// target.getAbsoluteFile().mkdirs();
		}

		try {
			InputStream is = new FileInputStream(source);
			OutputStream os = new FileOutputStream(target);
			int temp;
			byte[] data = new byte[1024];
			while ((temp = is.read(data)) != -1) {
				os.write(data, 0, temp);
			}
			os.close();
			is.close();
			System.out.println("Copy End~~");
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}



MySQL Workbench 사용법


  1. Installed 창으로 이동 후 설치

  2. Workbench 실행한 화면

  1. create database 클릭 후 생성

  2. db 다이어그램을 볼 수 있음



0개의 댓글