본문 바로가기

Java

[Java] 37

실습(파일 입출력)

1. "task.txt" 파일의 마지막 줄에 '안녕하세요' 출력하기

(1) 파일 마지막 줄에 문자열을 출력하는 메소드 생성

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public static void append(String msg) throws IOException {
	File f = new File("task.txt");
	FileWriter fw = new FileWriter(f, true);
	BufferedWriter bw = new BufferedWriter(fw);
	
	bw.write(msg + "\n");
	
	bw.close();
	fw.close();
}

(2) main 메소드에서 해당 메소드 실행

public static void main(String[] args) throws IOException {
	try {
		FileTask.append("안녕하세요");

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

 

2. "task.txt" 파일의 1번째 위치에 '안녕하세요' 추가 출력하기

(1) 파일 중간에 문자열을 삽입하는 메소드 생성

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public static void insert(int idx, String msg) throws IOException {
	File f = new File("task.txt");
	FileReader fr = new FileReader(f);
	BufferedReader br = new BufferedReader(fr);
	String res = "";
	
	for(int i = 0; i < 5; i++) {
		res += br.readLine() + "\n";
	}
	
	res += msg + "\n";
	
	String line = "";
	while((line = br.readLine()) != null) {
		res += line + "\n";
	}
	
	br.close();
	fr.close();
	
	FileWriter fw = new FileWriter(f);
	BufferedWriter bw = new BufferedWriter(fw);
	
	bw.write(res);
	
	bw.close();
	fw.close();
}

(2) main 메소드에서 해당 메소드 실행

public static void main(String[] args) throws IOException {

    FileTask.insert(1, "안녕하세요"); 
				
}

 

3. "task.txt" 파일의 9번째 줄 삭제하기

(1) 입력한 위치의 문자열을 삭제하는 메소드 생성

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public static void remove(int idx) throws IOException { 
	File f = new File("task.txt");
	FileReader fr = new FileReader(f);
	BufferedReader br = new BufferedReader(fr);
	String res = "";
		
	for(int i = 0; i < idx; i++) {
		res += br.readLine() + "\n";
	}
		
	br.readLine();
	String line = "";
	
	while((line = br.readLine()) != null) {
		res += line + "\n";
	}
		
	br.close();
	fr.close();
		
	FileWriter fw = new FileWriter(f);
	BufferedWriter bw = new BufferedWriter(fw);
		
	bw.write(res);
	
	bw.close();
	fw.close();
}

(2) main 메소드에서 해당 메소드 실행

public static void main(String[] args) throws IOException {

    FileTask.remove(9);
				
}

 

※ 전체 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileTask {
	
	public static void append(String msg) throws IOException {
		File f = new File("task.txt");
		FileWriter fw = new FileWriter(f, true);
		BufferedWriter bw = new BufferedWriter(fw);
		
		bw.write(msg + "\n");
		
		bw.close();
		fw.close();
	}
	
	public static void insert(int idx, String msg) throws IOException {
		File f = new File("task.txt");
		FileReader fr = new FileReader(f);
		BufferedReader br = new BufferedReader(fr);
		String res = "";
		
		for(int i = 0; i < 5; i++) {
			res += br.readLine() + "\n";
		}
		
		res += msg + "\n";
		
		String line = "";
		while((line = br.readLine()) != null) {
			res += line + "\n";
		}
		
		br.close();
		fr.close();
		
		FileWriter fw = new FileWriter(f);
		BufferedWriter bw = new BufferedWriter(fw);
		
		bw.write(res);
		
		bw.close();
		fw.close();
	}
	
	public static void remove(int idx) throws IOException { 
		File f = new File("task.txt");
		FileReader fr = new FileReader(f);
		BufferedReader br = new BufferedReader(fr);
		String res = "";
		
		for(int i = 0; i < idx; i++) {
			res += br.readLine() + "\n";
		}
		
		br.readLine();
		String line = "";
		
		while((line = br.readLine()) != null) {
			res += line + "\n";
		}
		
		br.close();
		fr.close();
		
		FileWriter fw = new FileWriter(f);
		BufferedWriter bw = new BufferedWriter(fw);
		
		bw.write(res);
		
		bw.close();
		fw.close();
	}
	

	public static void main(String[] args) throws IOException {

		try {
			FileTask.append("안녕하세요");
		} catch (IOException e) {
			e.printStackTrace();
		} 
		
		FileTask.insert(1, "안녕하세요"); 

		FileTask.remove(9);
		
	}

}
 
결과

 

'Java' 카테고리의 다른 글

[Java] 39  (0) 2022.02.13
[Java] 38  (0) 2022.02.12
[Java] 36  (0) 2022.02.08
[Java] 35  (0) 2022.02.06
[Java] 34  (0) 2022.02.05