반응형
- 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();
}
}
반응형
'코딩 > 2-JAVA' 카테고리의 다른 글
C1404콜렉션벡터_개념 (0) | 2025.07.09 |
---|---|
C14콜렉션 => C1401가변배열_개념 (0) | 2025.07.07 |
C1203메서드클래스배열_개념 ~ C1208메서드클래스배열_암기5 (0) | 2025.07.04 |
C1202메서드리턴_개념 (1) | 2025.07.03 |
C1201메서드_개념 (0) | 2025.07.03 |