반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

java.file입력/출력 본문

[IT]/java

java.file입력/출력

givemebro 2021. 3. 15. 12:24
반응형

package step2;

import java.io.IOException;
import java.util.ArrayList;

public abstract class TestIOService1 {
	public static void main(String[] args) {
		String path = "C:\\4. kosta215\\iotest2\\lunch.txt";
		IOService service = new IOService(path);
		// file에 저장할 데이터를 list에 담는다
		ArrayList<String> list = new ArrayList<String>();
		list.add("짜장면");
		list.add("돈까쓰");
		list.add("커피");

		try {
			service.saveData(list);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("출력 완료");
	}
}
package step2;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;

// path에 해당하는 파일로부터 정보를 입력 받아 ArrayList로 반환받는 예제
public abstract class TestIOService2 {
	public static void main(String[] args) {
		String path = "C:\\4. kosta215\\iotest2\\lunch.txt";
		IOService service = new IOService(path);

		try {
			ArrayList<String> list = service.readData();
			Iterator<String> it = list.iterator();
			while (it.hasNext()) {
				System.out.println(it.next());
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("입력 완료");
	}
}
package step2;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;

public class IOService {
	String path;

// file path에 해당하는 상위 디렉토리가 없다면 디렉토리를 생성
	public IOService(String path) {
		File dir = new File(path).getParentFile();// 상위 디렉토리 객체 반환
		if (dir.isDirectory() == false) {
			dir.mkdirs();// 디렉토리 생성
		}
		this.path = path;
	}

	public void saveData(ArrayList<String> list) throws IOException {
		// TODO Auto-generated method stub
		PrintWriter pw = null;
		try {
			pw = new PrintWriter(new FileWriter(path));
			Iterator<String> it = list.iterator();
			while (it.hasNext()) {
				pw.println(it.next());
			}
		} finally {
			if (pw != null) {
				pw.close();// 임시메모리(buffer)에 있는 정보를 출력(flush)하고 close한다.
			}

		}
	}

	// path에 해당하는 파일로부터 정보를 입력받아 ArrayList에 저장한 후 반환하는 메서드
	public ArrayList<String> readData() throws IOException {

		BufferedReader br = null;
		try {
			br = new BufferedReader(new FileReader(path));
			ArrayList<String> list = new ArrayList<String>();
			while (br.ready()) {
				list.add(br.readLine());
			}
		} finally {
			if (br != null) {
				br.close();
			}
		}

		return list;

	}
}
반응형

'[IT] > java' 카테고리의 다른 글

java.Object Serialization(객체 직렬화)/Object DeSerialization(객체 역직렬화)  (0) 2021.03.15
java.SerialVersionUID  (0) 2021.03.15
java.byte파일 컨트롤  (0) 2021.03.15
java.문자열 파일 컨트롤  (0) 2021.03.15
java.BufferedReader  (0) 2021.03.15
java.Scanner(입력)  (0) 2021.03.12
java.Stream.NodeStream/ProcessingStream  (0) 2021.03.12
java.IO.File/Directory  (0) 2021.03.12
Comments