Daily coding
Java Basic : day 8 - Example 03: 파일 입출력 / 생성 클래스 구현하기 본문
Language/Java_basic
Java Basic : day 8 - Example 03: 파일 입출력 / 생성 클래스 구현하기
sunnnkim 2019. 11. 27. 20:11package day8.example3;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class FileClass {
private File file;
private String dirName;
private String fileName;
public FileClass() {
dirName = "d:\\";
file = new File(dirName);
}
public void resetDir() {
dirName = "d:\\";
fileName="";
}
public void setNames() {
Scanner sc = new Scanner(System.in);
resetDir();
// 폴더이름 선택
System.out.println("디렉토리 이름 : ");
System.out.print("d:\\ ? ");
String dir = sc.next().trim();
dirName += dir;
// 파일 이름 정하기
System.out.print(" 파일 이름 : ");
String fn = sc.next().trim();
fileName = fn+".txt";
}
public boolean create() {
setNames();
file = new File(dirName);
file.mkdirs();
file = new File(dirName+"\\"+fileName);
if(file.exists()) {
return false;
}
else {
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return true;
}
public void printCreate() {
Scanner sc = new Scanner(System.in);
int choice;
System.out.println("< 파일 생성하기 >");
while(true) {
boolean creatFile = create();
if(creatFile) {
System.out.println("파일을 생성함.");
return;
}else {
System.out.println("파일이름이 이미 존재함.");
System.out.println("1. 다시 생성하기 2. 나가기");
try {
choice = sc.nextInt();
} catch (Exception e) {
choice = 2;
}
if(choice == 1);
else {
return;
}
}
}
}
public void read() {
// file
}
public boolean checkExist() {
file = new File(dirName);
if(file.exists() && file.isDirectory()) {
file = new File(dirName+"\\"+fileName);
if(file.exists())
return true;
}
return false;
}
public void printReadMenu() {
setNames();
boolean checkFile = checkExist();
if(checkFile) { // 파일이 있으면 불러온다
try {
FileReader fr = new FileReader(file);
BufferedReader bw = new BufferedReader(fr);
String str;
try {
while((str = bw.readLine()) != null ){
System.out.println(str);
}
bw.close();
}catch (Exception e) {};
} catch (Exception e) {};
}
else {
System.out.println("파일이 없습니다.");
}
}
public void printwriteMenu() {
Scanner sc = new Scanner(System.in);
System.out.println("파일 쓰기");
setNames();
boolean checkFile = checkExist();
if(checkFile) { // 파일이 있으면 쓴다.
try {
FileWriter fw = new FileWriter(file,true);
PrintWriter pw = new PrintWriter(new FileOutputStream(new File(dirName+"\\"+fileName),true));
// new FileOutputStream(new File("persons.txt"),true)
String str ="";
while(true) {
str = sc.nextLine();
if(str.charAt(0) == '-' &&str.charAt(1) == '1') {
System.out.println("<입력 끝>");
break;
}
pw.println(str);
}
pw.close();
fw.close();
} catch (Exception e) {}
}
}
public void printMenu() {
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("< 파일 입출력 및 생성하기 >");
System.out.println("1. 파일 생성하기");
System.out.println("2. 파일 읽기");
System.out.println("3. 파일 쓰기");
System.out.println("0. 종료");
int choice;
try {
choice = sc.nextInt();
} catch (Exception e) {
choice = -1;
}
if(choice == 1) {
printCreate();
}
else if(choice == 2) {
printReadMenu();
}
else if(choice == 3) {
printwriteMenu();
}
else {
System.out.println("종료.");
break;
}
}
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 9 - Static 스태틱 (0) | 2019.11.29 |
---|---|
Java Basic : day 9 - Class 은닉화(캡슐화) 복습 (0) | 2019.11.29 |
Java Basic : day 8 - Example 02: Sorting 정렬 클래스 구현하기 (0) | 2019.11.27 |
Java Basic : day 8 - Example 01: Baseball 게임 클래스로 구현하기 (0) | 2019.11.27 |
Java Basic : day 8 - OOP: this 참조 (0) | 2019.11.27 |