코딩/2-JAVA

C13파일입출력

tree0505 2025. 7. 7. 10:00
반응형
    • C1301파일입출력_개념

  • C1301개념01파일입출력
package C1301파일입출력_개념;

import java.io.FileWriter; //임포트 

public class C1301개념01파일입출력 {
	public static void main(String[] args) {
		
		// 세이브 파일 만들기 
		// 1) 변수생성          	==>  FileWriter fw = null; 
		// 1) 파일 생성          	==>  fw = new FileWriter("파일이름"); 
		// 2) 파일에 내용 저장 		==>  fw.write(저장할내용);
		// 3) 파일닫기           	==>  fw.close(); 
		
		String fileName = "file01.txt";
		FileWriter fw = null; 	// try 밖에서 사용을 위해 보통 밖에 변수를 만든다.
		
		try { //파일라이터는 트라이캐치 안에 만들어야 한다. 
			fw = new FileWriter(fileName);
			fw.write("김철수,10\n이영희,30\n박만수,50"); 
			//적을 내용을 문자열로 적는것 
			
			fw.close(); //닫기 
		} catch(Exception e) {
			e.printStackTrace();
		} 
		
		// 1. Run : Ctrl + F11
		// 2. 프로젝트 선택 후, 
		//    F5(Refresh)를 누르면 생성된 메모장 파일을 확인할 수 있다.
		
	}
}

  • 프로그램을 작성하면 
    • ram에 작성이 된다. 
    • 프로그램을 끄면. 그냥 지워진다. 
    • ram에 있는 것을 하드디스크로 옮겨야 한다. 그래야 데이터가 남아 있다. 
    • 그것을 파일라이터라고 한다. 
    • 트라이캐치를 반드시 쓰도록 만들어져 있다. 


  • C1301개념02파일입출력
package C1301파일입출력_개념;

import java.io.FileWriter;
import java.io.IOException;

public class C1301개념02파일입출력 {
	public static void main(String[] args) {
		
		String fileName = "src/C1301파일입출력_개념/file02.txt"; 
		//경로 적어주기 
		FileWriter fw = null; 
		try {
			fw = new FileWriter(fileName);
			fw.write("김철수,10\n이영희,30\n박만수,50");
            fw.close();
		}catch(IOException e) { // Exception 을 사용해도되고 IOException 을 사용해도 된다.
			e.printStackTrace();
		}
		
	}
}

  • C1301개념03저장경로
package C1301파일입출력_개념;

import java.io.FileWriter;
import java.io.IOException;

public class C1301개념03저장경로 {
	public static void main(String[] args) {
		
		String fileName = "src/파일입출력_개념/file03.txt"; // 경로를지정하면  폴더에 저장가능
		FileWriter fw = null; 
		try {
			fw = new FileWriter(fileName);
			fw.write("김철수,10\n이영희,30\n박만수,50");
            fw.close();
		}catch(Exception e) { // Exception 을 사용해도되고 IOException 을사용해도된다.
			e.printStackTrace();
		}
		
	}
}

  • C1301개념04불러오기
package C1301파일입출력_개념;

import java.io.FileReader;

public class C1301개념04불러오기 {
	public static void main(String[] args) {
		
		// 1) FileReader fr = null; 			// 변수선언
		// 1) fr = new FileReader(fileName); 	// 저장된 파일을 읽어온다.	
		// 2) fr.read(); 						// 한글자씩 int로 가져온다. 
												// 가져올 내용이 없으면 -1이 저장된다.
		// 3) fr.close(); 						// 사용후 반드시 닫아야 된다.
		
		String fileName = "src/C1301파일입출력_개념/file03.txt";		
		
		String data = "";

		FileReader fr = null;
		//여기는 RAM이기 때문에 가져와야 한다. FileReader 함 
		
		try {
			fr = new FileReader(fileName); //  저장된 파일을 읽어온다.
			
			while(true) {
				int read = fr.read(); 		// 한글자씩  int 로 가져온다.
				if(read == -1) {
					break;				
				} else {
					data += (char)read; 	// read값이 int형 char로 형변환후 저장
				}				
			}	
			
			fr.close();       
		}catch(Exception e) {
			e.printStackTrace();
		}
		
		System.out.println(data);
		
	}
}

  • C1301개념05경로확인후불러오기
package C1301파일입출력_개념;

import java.io.File;
import java.io.FileReader;

public class C1301개념05경로확인후불러오기 {
	public static void main(String[] args) {
		
		String fileName = "file01.txt";		
		FileReader fr = null;
		String data = "";
		
		File file = new File(fileName); 
		//경로를 확인하는 file이라는 클래스 이다. 경로를 넣어준다. 
		
		if(file.exists()) {	// 파일이 있는지 없는지 경로를 확인할 수 있다.
			//파일이 있으면 해라. 
			try {
				fr = new FileReader(fileName); 	// 저장된 파일을 읽어온다.			
				while(true) {
					int read = fr.read(); 		// 한글자씩 int로 가져온다. 
					if(read != -1) {
						data += (char)read; 	// read값이 int형으로 char로 형변환 후 저장				
					} else {
						break;
					}				
				}			
				fr.close();       
				
				System.out.println(data);
				
			}catch(Exception e) {
				e.printStackTrace();
			}
		}else {
			System.out.println("불러오기 실패");
		}
		
	}
}

  • C1301개념06종합_암기
package C1301파일입출력_개념;

import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;

public class C1301개념06종합_암기 {
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);

		String nameData = "김철수,이만수,이영희";
		String ageData ="20,30,40";
		String fileName = "src/C1301파일입출력_개념/file04.txt";
		String data = "";		
		
		String[] nameList = null;
		int [] ageList = null;	
		
		FileWriter fw  = null;
		FileReader fr = null;
		
		while(true) {
						
			System.out.println("[0] 종료 [1] 저장 [2] 로드");
			int sel = scan.nextInt();
			if(sel == 0) {
				break;
			}
			else if(sel == 1) {
//				[저장] 김철수/20\n이만수/30\n이영희/40 이렇게 데이터를 만들어 파일 생성후 저장하시오. 
				
				String[] nameSample = nameData.split(",");
				String[] ageSample = ageData.split(",");
				
				try {
					data = "";
					fw = new FileWriter(fileName);
									
					for(int i = 0; i < nameSample.length; i++) {
						data += nameSample[i];
						data += ",";
						data += ageSample[i];
						data +="\n";
					}
					data = data.substring(0, data.length()-1);
					fw.write(data);
					fw.close();
					
				} catch (Exception e) {
					
				}
				
				System.out.println(data);
			}
			else if(sel == 2) {
//				[로드] 파일을 불러와서 nameList, ageList 배열에 저장하시오 
				
				data = "";
				try {
					fr = new FileReader(fileName);
					while(true) {
						int read = fr.read(); 		// 한글자씩  int 로 가져온다. 
						if(read != -1) {
							data += (char)read; 	// read값이 int형 char로 형변환후 저장				
						}
						else {
							break;
						}				
					}			
					fr.close();   
					
					
				}catch (Exception e) {
					e.printStackTrace();
				}
				System.out.println(data);
				
				String[] token = data.split("\n");
				int size = token.length;
				
				nameList = new String[size];
				ageList = new int[size];
				
				for(int i = 0; i < size; i++) {
					String[] token2 = token[i].split(",");
					nameList[i] = token2[0];
					ageList[i] = Integer.parseInt(token2[1]);
				}
				System.out.println("-----------------------------------");
				
				for(int i = 0; i < size; i++) {
					System.out.println(nameList[i] + " " + ageList[i]);
				}
				
			}
			
		}
		
		scan.close();
		
	}
}

  •  
반응형