타닥타닥 개발자의 일상

Java FileWriter, BufferedWriter, PrintWriter 로 파일 생성해서 내용 입력, 입력된 내용 다시 배열로 출력하기 본문

코딩 기록/Java

Java FileWriter, BufferedWriter, PrintWriter 로 파일 생성해서 내용 입력, 입력된 내용 다시 배열로 출력하기

NomadHaven 2021. 12. 14. 01:05

package fileWork;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;

public class MainClass {

public static void main(String[] args) {

// String 에 있는 변수 3개 파일로 저장하고 

저장된 파일 불러와서 배열로 저장한 다음 출력하기

String name[] = { "홍길동", "성춘향", "일지매" };

File file = new File("c:\\myfile\\names.txt"); //names란 텍스트 파일 생성 변수 file

try {
FileWriter fw = new FileWriter(file);  //names란 텍스트 파일에 쓰는 변수 fw
BufferedWriter bw = new BufferedWriter(fw);  //names란 텍스트 파일에 문장 작성하는 변수 bw
PrintWriter pw = new PrintWriter(bw);  //names란 텍스트 파일에 쓰여진 문장 출력하는 변수 pw

for (int i = 0; i < name.length; i++) {  //name이란 배열의 변수만큼 반복
pw.println(name[i]);  //name에 있는 변수들을 텍스트 파일 생성해서 쓰고 쓴 내용을 출력
}
pw.close(); //pw 종료

} catch (IOException e) {
e.printStackTrace();
}

String student[] = null;
int count = 0;
String str;
try {

// 데이터의 갯수를 파악
BufferedReader br = new BufferedReader(new FileReader(file));  //names란 텍스트 파일에 있는 문장을 읽는 변수 br
while((str = br.readLine()) != null) {  //names란 텍스트 파일에 문장이 존재해 null값이 나오지 않는다면
count++;  //데이터의 갯수 증가
}

// System.out.println(count);
student = new String[count];  //student라는 텅빈 배열에 위에서 파악한 데이터 갯수와 동일한 변수 갯수 정의
int n = 0;

br = new BufferedReader(new FileReader(file)); 
// 실제의 데이터의 저장
while((str = br.readLine()) != null) {  

//문자열 자료형이라 정의된 str은 names란 텍스트파일을 읽어서 나온 문장으로 되어있으며, 문장이 존재하는 동안에는
student[n] = str;

//student의 [n]번째 변수는 names란 텍스트파일을 읽어서 나온 문장인 str이다.

n++;
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

for (int i = 0; i < student.length; i++) {
System.out.println(student[i]);
}

출력화면: 

홍길동
성춘향
일지매



// -----------------------------------------------------------------------

String human[] = { "홍길동", "24", "서울시" };

위의 문자열 배열을 println 을 한번 사용해서 파일에 저장하시오 ex)  "홍길동24서울시" 
저장된 배열을 파일에서 불러온다음 ->이름 -나이- 주소 순으로 정렬하시오.


String human[] = { "홍길동", "24", "서울시" };

File file1 = new File("c:\\myfile\\member.txt");
try {
PrintWriter pw1 = new PrintWriter(new BufferedWriter(new FileWriter(file1))); 

//pw1은 member라는 텍스트 파일에 내용을 쓰고 문장을 쓰고 쓰인 문장을 출력하는 변수


String str1 = human[0] + "-" + human[1] + "-" + human[2]; 

//문자열 str1은 human 배열에 있는 변수를 하이픈과 나열한 값
pw1.println(str1);
//문자열 str1의 값을 meber라는 텍스트 파일에 작성하고 문장을 출력
pw1.close();

} catch (IOException e) {
e.printStackTrace();
}

String mem = "";

//mem이라는 문자열 초기화
try {
BufferedReader br1 = new BufferedReader(new FileReader(file1));
//member라는 텍스트 파일의 문장을 읽는 변수 br1
String str2;
while((str2 = br1.readLine()) != null) {

//문자열 str2의 값은 member 라는 텍스트 파일에서 읽힌 문장과 같으며

//문장이 존재하는 동안 반복한다.
mem = str2;

//문자열 mem에 문자열 str2의 값 대입
}
br1.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}  

System.out.println(mem);
String split[] = mem.split("-");

//split이라는 문자 배열은 mem이란 문자열을 하이픈을 기준으로 나눈 글자들을 변수로 삼는다.
System.out.println(Arrays.toString(split));

 

}

}

출력화면

홍길동-24-서울시
[홍길동, 24, 서울시]



Comments